From caa0eab19bc0b210704e0c7b2e841a21bb8328ee Mon Sep 17 00:00:00 2001 From: Murat Kabilov Date: Tue, 7 Mar 2017 16:03:40 +0100 Subject: [PATCH] Move statefulset creation from cluster spec to the separate function --- pkg/cluster/cluster.go | 11 +---------- pkg/cluster/resources.go | 26 +++++++++++++++----------- 2 files changed, 16 insertions(+), 21 deletions(-) diff --git a/pkg/cluster/cluster.go b/pkg/cluster/cluster.go index ad3e1d870..5e4fc72b5 100644 --- a/pkg/cluster/cluster.go +++ b/pkg/cluster/cluster.go @@ -23,7 +23,6 @@ import ( "github.bus.zalan.do/acid/postgres-operator/pkg/util" "github.bus.zalan.do/acid/postgres-operator/pkg/util/constants" "github.bus.zalan.do/acid/postgres-operator/pkg/util/k8sutil" - "github.bus.zalan.do/acid/postgres-operator/pkg/util/resources" "github.bus.zalan.do/acid/postgres-operator/pkg/util/teams" ) @@ -199,15 +198,7 @@ func (c *Cluster) Create() error { } func (c *Cluster) Update(newSpec *spec.Postgresql, rollingUpdate bool) error { - nSpec := newSpec.Spec - cSpec := c.Spec - clusterName := c.ClusterName() - volumeSize := cSpec.Volume.Size - volumeStorageClass := cSpec.Volume.StorageClass - resourceList := resources.ResourceList(nSpec.Resources) - template := resources.PodTemplate(clusterName, resourceList, c.dockerImage, nSpec.Version, c.etcdHost) - volumeClaimTemplate := resources.VolumeClaimTemplate(volumeSize, volumeStorageClass) - statefulSet := resources.StatefulSet(clusterName, template, volumeClaimTemplate, nSpec.NumberOfInstances) + statefulSet := getStatefulSet(c.ClusterName(), newSpec.Spec, c.etcdHost, c.dockerImage) //TODO: mind the case of updating allowedSourceRanges err := c.updateStatefulSet(statefulSet) diff --git a/pkg/cluster/resources.go b/pkg/cluster/resources.go index abe8e2baa..0235d0ab2 100644 --- a/pkg/cluster/resources.go +++ b/pkg/cluster/resources.go @@ -6,15 +6,26 @@ import ( "k8s.io/client-go/pkg/api/v1" "k8s.io/client-go/pkg/apis/apps/v1beta1" + "github.bus.zalan.do/acid/postgres-operator/pkg/spec" "github.bus.zalan.do/acid/postgres-operator/pkg/util" "github.bus.zalan.do/acid/postgres-operator/pkg/util/constants" "github.bus.zalan.do/acid/postgres-operator/pkg/util/k8sutil" "github.bus.zalan.do/acid/postgres-operator/pkg/util/resources" ) -var orphanDependents = false -var deleteOptions = &v1.DeleteOptions{ - OrphanDependents: &orphanDependents, +var ( + deleteOptions = &v1.DeleteOptions{OrphanDependents: &orphanDependents} + orphanDependents = false +) + +func getStatefulSet(clusterName spec.ClusterName, cSpec spec.PostgresSpec, etcdHost, dockerImage string) *v1beta1.StatefulSet { + volumeSize := cSpec.Volume.Size + volumeStorageClass := cSpec.Volume.StorageClass + resourceList := resources.ResourceList(cSpec.Resources) + template := resources.PodTemplate(clusterName, resourceList, dockerImage, cSpec.Version, etcdHost) + volumeClaimTemplate := resources.VolumeClaimTemplate(volumeSize, volumeStorageClass) + + return resources.StatefulSet(clusterName, template, volumeClaimTemplate, cSpec.NumberOfInstances) } func (c *Cluster) LoadResources() error { @@ -103,14 +114,7 @@ func (c *Cluster) ListResources() error { } func (c *Cluster) createStatefulSet() (*v1beta1.StatefulSet, error) { - cSpec := c.Spec - volumeSize := cSpec.Volume.Size - volumeStorageClass := cSpec.Volume.StorageClass - clusterName := c.ClusterName() - resourceList := resources.ResourceList(cSpec.Resources) - template := resources.PodTemplate(clusterName, resourceList, c.dockerImage, cSpec.Version, c.etcdHost) - volumeClaimTemplate := resources.VolumeClaimTemplate(volumeSize, volumeStorageClass) - statefulSetSpec := resources.StatefulSet(clusterName, template, volumeClaimTemplate, cSpec.NumberOfInstances) + statefulSetSpec := getStatefulSet(c.ClusterName(), c.Spec, c.etcdHost, c.dockerImage) statefulSet, err := c.config.KubeClient.StatefulSets(statefulSetSpec.Namespace).Create(statefulSetSpec) if k8sutil.ResourceAlreadyExists(err) { return nil, fmt.Errorf("StatefulSet '%s' already exists", util.NameFromMeta(statefulSetSpec.ObjectMeta))