diff --git a/pkg/cluster/k8sres.go b/pkg/cluster/k8sres.go index 52fbfeb17..83707a0bc 100644 --- a/pkg/cluster/k8sres.go +++ b/pkg/cluster/k8sres.go @@ -491,7 +491,7 @@ func (c *Cluster) generatePodTemplate( template := v1.PodTemplateSpec{ ObjectMeta: metav1.ObjectMeta{ - Labels: c.labelsSet(), + Labels: c.labelsSet(true), Namespace: c.Namespace, }, Spec: podSpec, @@ -559,7 +559,7 @@ func (c *Cluster) generateStatefulSet(spec *spec.PostgresSpec) (*v1beta1.Statefu ObjectMeta: metav1.ObjectMeta{ Name: c.statefulSetName(), Namespace: c.Namespace, - Labels: c.labelsSet(), + Labels: c.labelsSet(true), }, Spec: v1beta1.StatefulSetSpec{ Replicas: &numberOfInstances, @@ -653,7 +653,7 @@ func (c *Cluster) generateSingleUserSecret(namespace string, pgUser spec.PgUser) ObjectMeta: metav1.ObjectMeta{ Name: c.credentialSecretName(username), Namespace: namespace, - Labels: c.labelsSet(), + Labels: c.labelsSet(true), }, Type: v1.SecretTypeOpaque, Data: map[string][]byte{ @@ -780,7 +780,7 @@ func (c *Cluster) generatePodDisruptionBudget() *policybeta1.PodDisruptionBudget ObjectMeta: metav1.ObjectMeta{ Name: c.podDisruptionBudgetName(), Namespace: c.Namespace, - Labels: c.labelsSet(), + Labels: c.labelsSet(true), }, Spec: policybeta1.PodDisruptionBudgetSpec{ MinAvailable: &minAvailable, diff --git a/pkg/cluster/pod.go b/pkg/cluster/pod.go index 68fdaa420..28960d9c1 100644 --- a/pkg/cluster/pod.go +++ b/pkg/cluster/pod.go @@ -13,7 +13,7 @@ import ( func (c *Cluster) listPods() ([]v1.Pod, error) { listOptions := metav1.ListOptions{ - LabelSelector: c.labelsSet().String(), + LabelSelector: c.labelsSet(false).String(), } pods, err := c.KubeClient.Pods(c.Namespace).List(listOptions) @@ -268,7 +268,7 @@ func (c *Cluster) recreatePod(podName spec.NamespacedName) (*v1.Pod, error) { func (c *Cluster) recreatePods() error { c.setProcessName("recreating pods") - ls := c.labelsSet() + ls := c.labelsSet(false) namespace := c.Namespace listOptions := metav1.ListOptions{ diff --git a/pkg/cluster/util.go b/pkg/cluster/util.go index 05040a07c..dd996ccd1 100644 --- a/pkg/cluster/util.go +++ b/pkg/cluster/util.go @@ -261,7 +261,7 @@ func (c *Cluster) waitStatefulsetReady() error { return retryutil.Retry(c.OpConfig.ResourceCheckInterval, c.OpConfig.ResourceCheckTimeout, func() (bool, error) { listOptions := metav1.ListOptions{ - LabelSelector: c.labelsSet().String(), + LabelSelector: c.labelsSet(false).String(), } ss, err := c.KubeClient.StatefulSets(c.Namespace).List(listOptions) if err != nil { @@ -277,7 +277,7 @@ func (c *Cluster) waitStatefulsetReady() error { } func (c *Cluster) waitPodLabelsReady() error { - ls := c.labelsSet() + ls := c.labelsSet(false) namespace := c.Namespace listOptions := metav1.ListOptions{ @@ -337,19 +337,26 @@ func (c *Cluster) waitStatefulsetPodsReady() error { return nil } -func (c *Cluster) labelsSet() labels.Set { +// Returns labels used to create or list k8s objects such as pods +// For backward compatability, shouldAddExtraLabels must be false +// when listing k8s objects. See operator PR #252 +func (c *Cluster) labelsSet(shouldAddExtraLabels bool) labels.Set { lbls := make(map[string]string) for k, v := range c.OpConfig.ClusterLabels { lbls[k] = v } lbls[c.OpConfig.ClusterNameLabel] = c.Name - lbls["team"] = c.Postgresql.Spec.TeamID + + if shouldAddExtraLabels { + // enables filtering resources owned by a team + lbls["team"] = c.Postgresql.Spec.TeamID + } return labels.Set(lbls) } func (c *Cluster) roleLabelsSet(role PostgresRole) labels.Set { - lbls := c.labelsSet() + lbls := c.labelsSet(false) lbls[c.OpConfig.PodRoleLabel] = string(role) return lbls } diff --git a/pkg/cluster/volumes.go b/pkg/cluster/volumes.go index 976649e7a..bc730dde3 100644 --- a/pkg/cluster/volumes.go +++ b/pkg/cluster/volumes.go @@ -19,7 +19,7 @@ import ( func (c *Cluster) listPersistentVolumeClaims() ([]v1.PersistentVolumeClaim, error) { ns := c.Namespace listOptions := metav1.ListOptions{ - LabelSelector: c.labelsSet().String(), + LabelSelector: c.labelsSet(false).String(), } pvcs, err := c.KubeClient.PersistentVolumeClaims(ns).List(listOptions)