From 14321d599fbcdec52fe55e205e79d22f0182740f Mon Sep 17 00:00:00 2001 From: Sergey Dudoladov Date: Thu, 7 Mar 2019 15:36:21 +0100 Subject: [PATCH] explicitly set the stateful set update strategy to onDelete --- pkg/cluster/k8sres.go | 6 ++++++ 1 file changed, 6 insertions(+) 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, }, }