Problem
Deployments with RWO (ReadWriteOnce) PersistentVolumeClaims use the default RollingUpdate strategy. During rollouts, the new pod cannot mount the PVC while the old pod still holds it, causing Multi-Attach errors and pods stuck in ContainerCreating.
Observed during the v0.2.17 rollout: postfix and webmail pods were stuck for 35+ minutes until the old pods were manually deleted.
Affected Components
PostfixConstruct — has RWO PVC for queue/data
WebmailConstruct — has RWO PVC for data
AdminConstruct — has RWO PVC for data
RspamdConstruct — has RWO PVC for data
Already Fixed
DovecotConstruct — already uses kplus.DeploymentStrategy.recreate()
Proposed Fix
Set strategy: kplus.DeploymentStrategy.recreate() on all deployments that mount RWO PVCs, matching the pattern already used by DovecotConstruct.
Problem
Deployments with RWO (ReadWriteOnce) PersistentVolumeClaims use the default
RollingUpdatestrategy. During rollouts, the new pod cannot mount the PVC while the old pod still holds it, causingMulti-Attacherrors and pods stuck inContainerCreating.Observed during the v0.2.17 rollout: postfix and webmail pods were stuck for 35+ minutes until the old pods were manually deleted.
Affected Components
PostfixConstruct— has RWO PVC for queue/dataWebmailConstruct— has RWO PVC for dataAdminConstruct— has RWO PVC for dataRspamdConstruct— has RWO PVC for dataAlready Fixed
DovecotConstruct— already useskplus.DeploymentStrategy.recreate()Proposed Fix
Set
strategy: kplus.DeploymentStrategy.recreate()on all deployments that mount RWO PVCs, matching the pattern already used byDovecotConstruct.