Move statefulset creation from cluster spec to the separate function
This commit is contained in:
parent
776ed3fa0f
commit
caa0eab19b
|
|
@ -23,7 +23,6 @@ import (
|
||||||
"github.bus.zalan.do/acid/postgres-operator/pkg/util"
|
"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/constants"
|
||||||
"github.bus.zalan.do/acid/postgres-operator/pkg/util/k8sutil"
|
"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"
|
"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 {
|
func (c *Cluster) Update(newSpec *spec.Postgresql, rollingUpdate bool) error {
|
||||||
nSpec := newSpec.Spec
|
statefulSet := getStatefulSet(c.ClusterName(), newSpec.Spec, c.etcdHost, c.dockerImage)
|
||||||
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)
|
|
||||||
|
|
||||||
//TODO: mind the case of updating allowedSourceRanges
|
//TODO: mind the case of updating allowedSourceRanges
|
||||||
err := c.updateStatefulSet(statefulSet)
|
err := c.updateStatefulSet(statefulSet)
|
||||||
|
|
|
||||||
|
|
@ -6,15 +6,26 @@ import (
|
||||||
"k8s.io/client-go/pkg/api/v1"
|
"k8s.io/client-go/pkg/api/v1"
|
||||||
"k8s.io/client-go/pkg/apis/apps/v1beta1"
|
"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"
|
||||||
"github.bus.zalan.do/acid/postgres-operator/pkg/util/constants"
|
"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/k8sutil"
|
||||||
"github.bus.zalan.do/acid/postgres-operator/pkg/util/resources"
|
"github.bus.zalan.do/acid/postgres-operator/pkg/util/resources"
|
||||||
)
|
)
|
||||||
|
|
||||||
var orphanDependents = false
|
var (
|
||||||
var deleteOptions = &v1.DeleteOptions{
|
deleteOptions = &v1.DeleteOptions{OrphanDependents: &orphanDependents}
|
||||||
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 {
|
func (c *Cluster) LoadResources() error {
|
||||||
|
|
@ -103,14 +114,7 @@ func (c *Cluster) ListResources() error {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *Cluster) createStatefulSet() (*v1beta1.StatefulSet, error) {
|
func (c *Cluster) createStatefulSet() (*v1beta1.StatefulSet, error) {
|
||||||
cSpec := c.Spec
|
statefulSetSpec := getStatefulSet(c.ClusterName(), c.Spec, c.etcdHost, c.dockerImage)
|
||||||
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)
|
|
||||||
statefulSet, err := c.config.KubeClient.StatefulSets(statefulSetSpec.Namespace).Create(statefulSetSpec)
|
statefulSet, err := c.config.KubeClient.StatefulSets(statefulSetSpec.Namespace).Create(statefulSetSpec)
|
||||||
if k8sutil.ResourceAlreadyExists(err) {
|
if k8sutil.ResourceAlreadyExists(err) {
|
||||||
return nil, fmt.Errorf("StatefulSet '%s' already exists", util.NameFromMeta(statefulSetSpec.ObjectMeta))
|
return nil, fmt.Errorf("StatefulSet '%s' already exists", util.NameFromMeta(statefulSetSpec.ObjectMeta))
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue