@@ -54,8 +54,11 @@ func MakeStatefulSet(z *v1beta1.ZookeeperCluster) *appsv1.StatefulSet {
5454 } else {
5555 pvcs = append (pvcs , v1.PersistentVolumeClaim {
5656 ObjectMeta : metav1.ObjectMeta {
57- Name : zkDataVolume ,
58- Labels : map [string ]string {"app" : z .GetName ()},
57+ Name : zkDataVolume ,
58+ Labels : mergeLabels (
59+ z .Spec .Labels ,
60+ map [string ]string {"app" : z .GetName ()},
61+ ),
5962 },
6063 Spec : persistence .PersistentVolumeClaimSpec ,
6164 })
@@ -85,10 +88,13 @@ func MakeStatefulSet(z *v1beta1.ZookeeperCluster) *appsv1.StatefulSet {
8588 Template : v1.PodTemplateSpec {
8689 ObjectMeta : metav1.ObjectMeta {
8790 GenerateName : z .GetName (),
88- Labels : map [string ]string {
89- "app" : z .GetName (),
90- "kind" : "ZookeeperMember" ,
91- },
91+ Labels : mergeLabels (
92+ z .Spec .Labels ,
93+ map [string ]string {
94+ "app" : z .GetName (),
95+ "kind" : "ZookeeperMember" ,
96+ },
97+ ),
9298 },
9399 Spec : makeZkPodSpec (z , extraVolumes ),
94100 },
@@ -282,7 +288,10 @@ func makeService(name string, ports []v1.ServicePort, clusterIP bool, z *v1beta1
282288 Name : name ,
283289 Namespace : z .Namespace ,
284290
285- Labels : map [string ]string {"app" : z .GetName (), "headless" : strconv .FormatBool (! clusterIP )},
291+ Labels : mergeLabels (
292+ z .Spec .Labels ,
293+ map [string ]string {"app" : z .GetName (), "headless" : strconv .FormatBool (! clusterIP )},
294+ ),
286295 Annotations : annotationMap ,
287296 },
288297 Spec : v1.ServiceSpec {
@@ -318,3 +327,15 @@ func MakePodDisruptionBudget(z *v1beta1.ZookeeperCluster) *policyv1beta1.PodDisr
318327 },
319328 }
320329}
330+
331+ // MergeLabels merges label maps
332+ func mergeLabels (l ... map [string ]string ) map [string ]string {
333+ res := make (map [string ]string )
334+
335+ for _ , v := range l {
336+ for lKey , lValue := range v {
337+ res [lKey ] = lValue
338+ }
339+ }
340+ return res
341+ }
0 commit comments