diff --git a/pkg/cluster/k8sres.go b/pkg/cluster/k8sres.go index f18c0802a..65e6910f1 100644 --- a/pkg/cluster/k8sres.go +++ b/pkg/cluster/k8sres.go @@ -2199,7 +2199,7 @@ func (c *Cluster) generateConnectionPoolerPodTemplate(spec *acidv1.PostgresSpec, podTemplate := &v1.PodTemplateSpec{ ObjectMeta: metav1.ObjectMeta{ - Labels: c.connectionPoolerLabelsSelector().MatchLabels, + Labels: c.connectionPoolerLabelsSelector(role).MatchLabels, Namespace: c.Namespace, Annotations: c.generatePodAnnotations(spec), }, @@ -2280,7 +2280,7 @@ func (c *Cluster) generateConnectionPoolerDeployment(spec *acidv1.PostgresSpec, ObjectMeta: metav1.ObjectMeta{ Name: name, Namespace: c.Namespace, - Labels: c.connectionPoolerLabelsSelector().MatchLabels, + Labels: c.connectionPoolerLabelsSelector(role).MatchLabels, Annotations: map[string]string{}, // make StatefulSet object its owner to represent the dependency. // By itself StatefulSet is being deleted with "Orphaned" @@ -2292,7 +2292,7 @@ func (c *Cluster) generateConnectionPoolerDeployment(spec *acidv1.PostgresSpec, }, Spec: appsv1.DeploymentSpec{ Replicas: numberOfInstances, - Selector: c.connectionPoolerLabelsSelector(), + Selector: c.connectionPoolerLabelsSelector(role), Template: *podTemplate, }, } @@ -2300,52 +2300,6 @@ func (c *Cluster) generateConnectionPoolerDeployment(spec *acidv1.PostgresSpec, return deployment, nil } -/* func (c *Cluster) generateReplicaConnectionPoolerDeployment(spec *acidv1.PostgresSpec) ( - *appsv1.Deployment, error) { - - podTemplate, err := c.generateConnectionPoolerPodTemplate(spec, Replica) - numberOfInstances := spec.ConnectionPooler.NumberOfInstances - if numberOfInstances == nil { - numberOfInstances = util.CoalesceInt32( - c.OpConfig.ConnectionPooler.NumberOfInstances, - k8sutil.Int32ToPointer(1)) - } - - if *numberOfInstances < constants.ConnectionPoolerMinInstances { - msg := "Adjusted number of connection pooler instances from %d to %d" - c.logger.Warningf(msg, numberOfInstances, constants.ConnectionPoolerMinInstances) - - *numberOfInstances = constants.ConnectionPoolerMinInstances - } - - if err != nil { - return nil, err - } - - deployment := &appsv1.Deployment{ - ObjectMeta: metav1.ObjectMeta{ - Name: c.connectionPoolerName() + "-repl", - Namespace: c.Namespace, - Labels: c.connectionPoolerLabelsSelector().MatchLabels, - Annotations: map[string]string{}, - // make StatefulSet object its owner to represent the dependency. - // By itself StatefulSet is being deleted with "Orphaned" - // propagation policy, which means that it's deletion will not - // clean up this deployment, but there is a hope that this object - // will be garbage collected if something went wrong and operator - // didn't deleted it. - OwnerReferences: c.ownerReferences(), - }, - Spec: appsv1.DeploymentSpec{ - Replicas: numberOfInstances, - Selector: c.connectionPoolerLabelsSelector(), - Template: *podTemplate, - }, - } - - return deployment, nil -} */ - func (c *Cluster) generateConnectionPoolerService(spec *acidv1.PostgresSpec, role PostgresRole) *v1.Service { // there are two ways to enable connection pooler, either to specify a @@ -2378,7 +2332,7 @@ func (c *Cluster) generateConnectionPoolerService(spec *acidv1.PostgresSpec, rol ObjectMeta: metav1.ObjectMeta{ Name: name, Namespace: c.Namespace, - Labels: c.connectionPoolerLabelsSelector().MatchLabels, + Labels: c.connectionPoolerLabelsSelector(role).MatchLabels, Annotations: map[string]string{}, // make StatefulSet object its owner to represent the dependency. // By itself StatefulSet is being deleted with "Orphaned" @@ -2394,40 +2348,6 @@ func (c *Cluster) generateConnectionPoolerService(spec *acidv1.PostgresSpec, rol return service } -/* func (c *Cluster) generateReplicaConnectionPoolerService(spec *acidv1.PostgresSpec) *v1.Service { - - replicaserviceSpec := v1.ServiceSpec{ - Ports: []v1.ServicePort{ - { - Name: c.connectionPoolerName() + "-repl", - Port: pgPort, - TargetPort: intstr.IntOrString{StrVal: c.servicePort(Replica)}, - }, - }, - Type: v1.ServiceTypeClusterIP, - Selector: c.roleLabelsSet(false, Replica), - } - - service := &v1.Service{ - ObjectMeta: metav1.ObjectMeta{ - Name: c.connectionPoolerName() + "-repl", - Namespace: c.Namespace, - Labels: c.connectionPoolerLabelsSelector().MatchLabels, - Annotations: map[string]string{}, - // make StatefulSet object its owner to represent the dependency. - // By itself StatefulSet is being deleted with "Orphaned" - // propagation policy, which means that it's deletion will not - // clean up this service, but there is a hope that this object will - // be garbage collected if something went wrong and operator didn't - // deleted it. - OwnerReferences: c.ownerReferences(), - }, - Spec: replicaserviceSpec, - } - - return service -} */ - func ensurePath(file string, defaultDir string, defaultFile string) string { if file == "" { return path.Join(defaultDir, defaultFile) diff --git a/pkg/cluster/k8sres_test.go b/pkg/cluster/k8sres_test.go index 58020a138..cce38007c 100644 --- a/pkg/cluster/k8sres_test.go +++ b/pkg/cluster/k8sres_test.go @@ -960,7 +960,7 @@ func testResources(cluster *Cluster, podSpec *v1.PodTemplateSpec) error { func testLabels(cluster *Cluster, podSpec *v1.PodTemplateSpec) error { poolerLabels := podSpec.ObjectMeta.Labels["connection-pooler"] - if poolerLabels != cluster.connectionPoolerLabelsSelector().MatchLabels["connection-pooler"] { + if poolerLabels != cluster.connectionPoolerLabelsSelector(Master).MatchLabels["connection-pooler"] { return fmt.Errorf("Pod labels do not match, got %+v, expected %+v", podSpec.ObjectMeta.Labels, cluster.connectionPoolerLabelsSelector().MatchLabels) } @@ -1118,7 +1118,7 @@ func testDeploymentOwnwerReference(cluster *Cluster, deployment *appsv1.Deployme func testSelector(cluster *Cluster, deployment *appsv1.Deployment) error { labels := deployment.Spec.Selector.MatchLabels - expected := cluster.connectionPoolerLabelsSelector().MatchLabels + expected := cluster.connectionPoolerLabelsSelector(Master).MatchLabels if labels["connection-pooler"] != expected["connection-pooler"] { return fmt.Errorf("Labels are incorrect, got %+v, expected %+v", diff --git a/pkg/cluster/util.go b/pkg/cluster/util.go index 578eaf40e..3f0dff0b1 100644 --- a/pkg/cluster/util.go +++ b/pkg/cluster/util.go @@ -420,11 +420,11 @@ func (c *Cluster) labelsSelector() *metav1.LabelSelector { // have e.g. different `application` label, so that recreatePod operation will // not interfere with it (it lists all the pods via labels, and if there would // be no difference, it will recreate also pooler pods). -func (c *Cluster) connectionPoolerLabelsSelector() *metav1.LabelSelector { +func (c *Cluster) connectionPoolerLabelsSelector(role PostgresRole) *metav1.LabelSelector { connectionPoolerLabels := labels.Set(map[string]string{}) extraLabels := labels.Set(map[string]string{ - "connection-pooler": c.connectionPoolerName(Master), + "connection-pooler": c.connectionPoolerName(role), "application": "db-connection-pooler", })