Merge pull request #252 from zalando-incubator/label-teams
Add 'team' label to pods, stateful sets, secrets and pod disruption budgets
This commit is contained in:
		
						commit
						0f392c2007
					
				|  | @ -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, | ||||
|  | @ -658,7 +658,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{ | ||||
|  | @ -785,7 +785,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, | ||||
|  |  | |||
|  | @ -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{ | ||||
|  |  | |||
|  | @ -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,18 +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 | ||||
| 
 | ||||
| 	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 | ||||
| } | ||||
|  |  | |||
|  | @ -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) | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue