diff --git a/pkg/cluster/k8sres.go b/pkg/cluster/k8sres.go index 87eeee27a..258932241 100644 --- a/pkg/cluster/k8sres.go +++ b/pkg/cluster/k8sres.go @@ -858,6 +858,11 @@ func (c *Cluster) generateStatefulSet(spec *acidv1.PostgresSpec) (*v1beta1.State numberOfInstances := c.getNumberOfInstances(spec) + // the operator has domain-specific logic on how to do rolling updates of PG clusters + // so we do not use default rolling updates implemented by stateful sets + // that leaves "OnDelete" update strategy as the only option + updateStrategy := v1beta1.StatefulSetUpdateStrategy{Type: v1beta1.OnDeleteStatefulSetStrategyType} + statefulSet := &v1beta1.StatefulSet{ ObjectMeta: metav1.ObjectMeta{ Name: c.statefulSetName(), @@ -871,6 +876,7 @@ func (c *Cluster) generateStatefulSet(spec *acidv1.PostgresSpec) (*v1beta1.State ServiceName: c.serviceName(Master), Template: *podTemplate, VolumeClaimTemplates: []v1.PersistentVolumeClaim{*volumeClaimTemplate}, + UpdateStrategy: updateStrategy, }, }