Skip to content

Commit 0f392c2

Browse files
authored
Merge pull request zalando#252 from zalando-incubator/label-teams
Add 'team' label to pods, stateful sets, secrets and pod disruption budgets
2 parents 2bb7e98 + 071547e commit 0f392c2

File tree

4 files changed

+19
-11
lines changed

4 files changed

+19
-11
lines changed

pkg/cluster/k8sres.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -491,7 +491,7 @@ func (c *Cluster) generatePodTemplate(
491491

492492
template := v1.PodTemplateSpec{
493493
ObjectMeta: metav1.ObjectMeta{
494-
Labels: c.labelsSet(),
494+
Labels: c.labelsSet(true),
495495
Namespace: c.Namespace,
496496
},
497497
Spec: podSpec,
@@ -559,7 +559,7 @@ func (c *Cluster) generateStatefulSet(spec *spec.PostgresSpec) (*v1beta1.Statefu
559559
ObjectMeta: metav1.ObjectMeta{
560560
Name: c.statefulSetName(),
561561
Namespace: c.Namespace,
562-
Labels: c.labelsSet(),
562+
Labels: c.labelsSet(true),
563563
},
564564
Spec: v1beta1.StatefulSetSpec{
565565
Replicas: &numberOfInstances,
@@ -658,7 +658,7 @@ func (c *Cluster) generateSingleUserSecret(namespace string, pgUser spec.PgUser)
658658
ObjectMeta: metav1.ObjectMeta{
659659
Name: c.credentialSecretName(username),
660660
Namespace: namespace,
661-
Labels: c.labelsSet(),
661+
Labels: c.labelsSet(true),
662662
},
663663
Type: v1.SecretTypeOpaque,
664664
Data: map[string][]byte{
@@ -785,7 +785,7 @@ func (c *Cluster) generatePodDisruptionBudget() *policybeta1.PodDisruptionBudget
785785
ObjectMeta: metav1.ObjectMeta{
786786
Name: c.podDisruptionBudgetName(),
787787
Namespace: c.Namespace,
788-
Labels: c.labelsSet(),
788+
Labels: c.labelsSet(true),
789789
},
790790
Spec: policybeta1.PodDisruptionBudgetSpec{
791791
MinAvailable: &minAvailable,

pkg/cluster/pod.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import (
1313

1414
func (c *Cluster) listPods() ([]v1.Pod, error) {
1515
listOptions := metav1.ListOptions{
16-
LabelSelector: c.labelsSet().String(),
16+
LabelSelector: c.labelsSet(false).String(),
1717
}
1818

1919
pods, err := c.KubeClient.Pods(c.Namespace).List(listOptions)
@@ -268,7 +268,7 @@ func (c *Cluster) recreatePod(podName spec.NamespacedName) (*v1.Pod, error) {
268268

269269
func (c *Cluster) recreatePods() error {
270270
c.setProcessName("recreating pods")
271-
ls := c.labelsSet()
271+
ls := c.labelsSet(false)
272272
namespace := c.Namespace
273273

274274
listOptions := metav1.ListOptions{

pkg/cluster/util.go

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -261,7 +261,7 @@ func (c *Cluster) waitStatefulsetReady() error {
261261
return retryutil.Retry(c.OpConfig.ResourceCheckInterval, c.OpConfig.ResourceCheckTimeout,
262262
func() (bool, error) {
263263
listOptions := metav1.ListOptions{
264-
LabelSelector: c.labelsSet().String(),
264+
LabelSelector: c.labelsSet(false).String(),
265265
}
266266
ss, err := c.KubeClient.StatefulSets(c.Namespace).List(listOptions)
267267
if err != nil {
@@ -277,7 +277,7 @@ func (c *Cluster) waitStatefulsetReady() error {
277277
}
278278

279279
func (c *Cluster) waitPodLabelsReady() error {
280-
ls := c.labelsSet()
280+
ls := c.labelsSet(false)
281281
namespace := c.Namespace
282282

283283
listOptions := metav1.ListOptions{
@@ -337,18 +337,26 @@ func (c *Cluster) waitStatefulsetPodsReady() error {
337337
return nil
338338
}
339339

340-
func (c *Cluster) labelsSet() labels.Set {
340+
// Returns labels used to create or list k8s objects such as pods
341+
// For backward compatability, shouldAddExtraLabels must be false
342+
// when listing k8s objects. See operator PR #252
343+
func (c *Cluster) labelsSet(shouldAddExtraLabels bool) labels.Set {
341344
lbls := make(map[string]string)
342345
for k, v := range c.OpConfig.ClusterLabels {
343346
lbls[k] = v
344347
}
345348
lbls[c.OpConfig.ClusterNameLabel] = c.Name
346349

350+
if shouldAddExtraLabels {
351+
// enables filtering resources owned by a team
352+
lbls["team"] = c.Postgresql.Spec.TeamID
353+
}
354+
347355
return labels.Set(lbls)
348356
}
349357

350358
func (c *Cluster) roleLabelsSet(role PostgresRole) labels.Set {
351-
lbls := c.labelsSet()
359+
lbls := c.labelsSet(false)
352360
lbls[c.OpConfig.PodRoleLabel] = string(role)
353361
return lbls
354362
}

pkg/cluster/volumes.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ import (
1919
func (c *Cluster) listPersistentVolumeClaims() ([]v1.PersistentVolumeClaim, error) {
2020
ns := c.Namespace
2121
listOptions := metav1.ListOptions{
22-
LabelSelector: c.labelsSet().String(),
22+
LabelSelector: c.labelsSet(false).String(),
2323
}
2424

2525
pvcs, err := c.KubeClient.PersistentVolumeClaims(ns).List(listOptions)

0 commit comments

Comments
 (0)