@@ -60,17 +60,30 @@ const (
6060 alternatorTLSPortName = "alternator-tls"
6161)
6262
63+ var (
64+ // Annotation keys excluded from propagation to underlying resources.
65+ nonPropagatedAnnotationKeys = []string {
66+ naming .ScyllaDBManagerClusterRegistrationNameOverrideAnnotation ,
67+ }
68+
69+ // Label keys excluded from propagation to underlying resources.
70+ nonPropagatedLabelKeys = []string {
71+ naming .GlobalScyllaDBManagerRegistrationLabel ,
72+ }
73+ )
74+
6375func IdentityService (sdc * scyllav1alpha1.ScyllaDBDatacenter ) (* corev1.Service , error ) {
76+ sdcLabels := getPropagableScyllaDBDatacenterLabels (sdc )
6477 svcLabels := map [string ]string {}
65- maps .Copy (svcLabels , sdc . Labels )
78+ maps .Copy (svcLabels , sdcLabels )
6679 maps .Copy (svcLabels , naming .ClusterLabels (sdc ))
6780 svcLabels [naming .ScyllaServiceTypeLabel ] = string (naming .ScyllaServiceTypeIdentity )
6881
6982 svcAnnotations := map [string ]string {}
7083
84+ sdcAnnotations := getPropagableScyllaDBDatacenterAnnotations (sdc )
7185 // As ScyllaDBDatacenter may be managed object (when user is using scyllav1.ScyllaCluster API), managed
7286 // hash from it shouldn't propagate into dependency objects to not trigger unnecessary double rollouts.
73- sdcAnnotations := maps .Clone (sdc .Annotations )
7487 delete (sdcAnnotations , naming .ManagedHash )
7588
7689 maps .Copy (svcAnnotations , sdcAnnotations )
@@ -99,12 +112,13 @@ func IdentityService(sdc *scyllav1alpha1.ScyllaDBDatacenter) (*corev1.Service, e
99112}
100113
101114func MemberService (sdc * scyllav1alpha1.ScyllaDBDatacenter , rackName , name string , oldService * corev1.Service , jobs map [string ]* batchv1.Job ) (* corev1.Service , error ) {
115+ sdcLabels := getPropagableScyllaDBDatacenterLabels (sdc )
102116 svcLabels := map [string ]string {}
103117
104118 if sdc .Spec .ExposeOptions != nil && sdc .Spec .ExposeOptions .NodeService .Labels != nil {
105119 maps .Copy (svcLabels , sdc .Spec .ExposeOptions .NodeService .Labels )
106120 } else {
107- maps .Copy (svcLabels , sdc . Labels )
121+ maps .Copy (svcLabels , sdcLabels )
108122 }
109123
110124 maps .Copy (svcLabels , naming .ClusterLabels (sdc ))
@@ -114,9 +128,9 @@ func MemberService(sdc *scyllav1alpha1.ScyllaDBDatacenter, rackName, name string
114128
115129 svcAnnotations := map [string ]string {}
116130
131+ sdcAnnotations := getPropagableScyllaDBDatacenterAnnotations (sdc )
117132 // As ScyllaDBDatacenter may be managed object (when user is using scyllav1.ScyllaCluster API), managed
118133 // hash from it shouldn't propagate into dependency objects to not trigger unnecessary double rollouts.
119- sdcAnnotations := maps .Clone (sdc .Annotations )
120134 delete (sdcAnnotations , naming .ManagedHash )
121135
122136 if sdc .Spec .ExposeOptions != nil && sdc .Spec .ExposeOptions .NodeService .Annotations != nil {
@@ -316,21 +330,23 @@ func StatefulSetForRack(rack scyllav1alpha1.RackSpec, sdc *scyllav1alpha1.Scylla
316330 requiredLabels [naming .ScyllaVersionLabel ] = scyllaDBVersion
317331 maps .Copy (requiredLabels , selectorLabels )
318332
333+ sdcLabels := getPropagableScyllaDBDatacenterLabels (sdc )
334+
319335 rackLabels := map [string ]string {}
320- maps .Copy (rackLabels , sdc . Labels )
336+ maps .Copy (rackLabels , sdcLabels )
321337 maps .Copy (rackLabels , requiredLabels )
322338
323339 rackTemplateLabels := map [string ]string {}
324340 if sdc .Spec .Metadata != nil && sdc .Spec .Metadata .Labels != nil {
325341 maps .Copy (rackTemplateLabels , sdc .Spec .Metadata .Labels )
326342 } else {
327- maps .Copy (rackTemplateLabels , sdc . Labels )
343+ maps .Copy (rackTemplateLabels , sdcLabels )
328344 }
329345 maps .Copy (rackTemplateLabels , requiredLabels )
330346
347+ sdcAnnotations := getPropagableScyllaDBDatacenterAnnotations (sdc )
331348 // As ScyllaDBDatacenter may be managed object (when user is using scyllav1.ScyllaCluster API), managed
332349 // hash from it shouldn't propagate into dependency objects to not trigger unnecessary double rollouts.
333- sdcAnnotations := maps .Clone (sdc .Annotations )
334350 delete (sdcAnnotations , naming .ManagedHash )
335351
336352 rackAnnotations := map [string ]string {}
@@ -366,7 +382,7 @@ func StatefulSetForRack(rack scyllav1alpha1.RackSpec, sdc *scyllav1alpha1.Scylla
366382 if rack .ScyllaDB != nil && rack .ScyllaDB .Storage != nil && rack .ScyllaDB .Storage .Metadata != nil && rack .ScyllaDB .Storage .Metadata .Labels != nil {
367383 maps .Copy (dataVolumeClaimLabels , rack .ScyllaDB .Storage .Metadata .Labels )
368384 } else if existingSts == nil {
369- maps .Copy (dataVolumeClaimLabels , sdc . Labels )
385+ maps .Copy (dataVolumeClaimLabels , sdcLabels )
370386 } else {
371387 if existingDataPVCTemplate == nil {
372388 return nil , fmt .Errorf ("data PVC template %q in existing %q StatefulSet spec is missing" , naming .PVCTemplateName , naming .ObjRef (existingSts ))
@@ -1282,17 +1298,19 @@ exec scylla-manager-agent \
12821298}
12831299
12841300func MakePodDisruptionBudget (sdc * scyllav1alpha1.ScyllaDBDatacenter ) * policyv1.PodDisruptionBudget {
1301+ sdcLabels := getPropagableScyllaDBDatacenterLabels (sdc )
1302+
12851303 maxUnavailable := intstr .FromInt (1 )
12861304
12871305 selectorLabels := naming .ClusterLabels (sdc )
12881306
12891307 labels := map [string ]string {}
1290- maps .Copy (labels , sdc . Labels )
1308+ maps .Copy (labels , sdcLabels )
12911309 maps .Copy (labels , selectorLabels )
12921310
1311+ sdcAnnotations := getPropagableScyllaDBDatacenterAnnotations (sdc )
12931312 // As ScyllaDBDatacenter may be managed object (when user is using scyllav1.ScyllaCluster API), managed
12941313 // hash from it shouldn't propagate into dependency objects to not trigger unnecessary double rollouts.
1295- sdcAnnotations := maps .Clone (sdc .Annotations )
12961314 delete (sdcAnnotations , naming .ManagedHash )
12971315
12981316 // Ignore any Job Pods that share the selector with ScyllaDB Pods, they shouldn't be accounted for PDB.
@@ -1346,9 +1364,11 @@ func MakeIngresses(sdc *scyllav1alpha1.ScyllaDBDatacenter, services map[string]*
13461364
13471365 var ingresses []* networkingv1.Ingress
13481366
1367+ sdcLabels := getPropagableScyllaDBDatacenterLabels (sdc )
1368+
1369+ sdcAnnotations := getPropagableScyllaDBDatacenterAnnotations (sdc )
13491370 // As ScyllaDBDatacenter may be managed object (when user is using scyllav1.ScyllaCluster API), managed
13501371 // hash from it shouldn't propagate into dependency objects to not trigger unnecessary double rollouts.
1351- sdcAnnotations := maps .Clone (sdc .Annotations )
13521372 delete (sdcAnnotations , naming .ManagedHash )
13531373
13541374 for _ , ip := range ingressParams {
@@ -1363,7 +1383,7 @@ func MakeIngresses(sdc *scyllav1alpha1.ScyllaDBDatacenter, services map[string]*
13631383 }
13641384
13651385 labels := map [string ]string {}
1366- maps .Copy (labels , sdc . Labels )
1386+ maps .Copy (labels , sdcLabels )
13671387 maps .Copy (labels , naming .ClusterLabels (sdc ))
13681388
13691389 switch naming .ScyllaServiceType (service .Labels [naming .ScyllaServiceTypeLabel ]) {
@@ -1452,13 +1472,14 @@ func MakeAgentAuthTokenSecret(sdc *scyllav1alpha1.ScyllaDBDatacenter, authToken
14521472 return nil , err
14531473 }
14541474
1475+ sdcLabels := getPropagableScyllaDBDatacenterLabels (sdc )
14551476 labels := map [string ]string {}
1456- maps .Copy (labels , sdc . Labels )
1477+ maps .Copy (labels , sdcLabels )
14571478 maps .Copy (labels , naming .ClusterLabels (sdc ))
14581479
1480+ sdcAnnotations := getPropagableScyllaDBDatacenterAnnotations (sdc )
14591481 // As ScyllaDBDatacenter may be managed object (when user is using scyllav1.ScyllaCluster API), managed
14601482 // hash from it shouldn't propagate into dependency objects to not trigger unnecessary double rollouts.
1461- sdcAnnotations := maps .Clone (sdc .Annotations )
14621483 delete (sdcAnnotations , naming .ManagedHash )
14631484
14641485 return & corev1.Secret {
@@ -1497,15 +1518,17 @@ func copyReferencedValue[T any](v *T) *T {
14971518}
14981519
14991520func MakeServiceAccount (sdc * scyllav1alpha1.ScyllaDBDatacenter ) * corev1.ServiceAccount {
1521+ sdcLabels := getPropagableScyllaDBDatacenterLabels (sdc )
1522+
15001523 labels := map [string ]string {}
1501- maps .Copy (labels , sdc . Labels )
1524+ maps .Copy (labels , sdcLabels )
15021525 maps .Copy (labels , naming .ClusterLabels (sdc ))
15031526
15041527 annotations := map [string ]string {}
15051528
1529+ sdcAnnotations := getPropagableScyllaDBDatacenterAnnotations (sdc )
15061530 // As ScyllaDBDatacenter may be managed object (when user is using scyllav1.ScyllaCluster API), managed
15071531 // hash from it shouldn't propagate into dependency objects to not trigger unnecessary double rollouts.
1508- sdcAnnotations := maps .Clone (sdc .Annotations )
15091532 delete (sdcAnnotations , naming .ManagedHash )
15101533 maps .Copy (annotations , sdcAnnotations )
15111534
@@ -1524,14 +1547,15 @@ func MakeServiceAccount(sdc *scyllav1alpha1.ScyllaDBDatacenter) *corev1.ServiceA
15241547
15251548func MakeRoleBinding (sdc * scyllav1alpha1.ScyllaDBDatacenter ) * rbacv1.RoleBinding {
15261549 saName := naming .MemberServiceAccountNameForScyllaDBDatacenter (sdc .Name )
1550+ sdcLabels := getPropagableScyllaDBDatacenterLabels (sdc )
15271551
15281552 labels := map [string ]string {}
1529- maps .Copy (labels , sdc . Labels )
1553+ maps .Copy (labels , sdcLabels )
15301554 maps .Copy (labels , naming .ClusterLabels (sdc ))
15311555
1556+ sdcAnnotations := getPropagableScyllaDBDatacenterAnnotations (sdc )
15321557 // As ScyllaDBDatacenter may be managed object (when user is using scyllav1.ScyllaCluster API), managed
15331558 // hash from it shouldn't propagate into dependency objects to not trigger unnecessary double rollouts.
1534- sdcAnnotations := maps .Clone (sdc .Annotations )
15351559 delete (sdcAnnotations , naming .ManagedHash )
15361560
15371561 annotations := map [string ]string {}
@@ -1567,6 +1591,7 @@ func MakeJobs(sdc *scyllav1alpha1.ScyllaDBDatacenter, services map[string]*corev
15671591 var jobs []* batchv1.Job
15681592 var progressingConditions []metav1.Condition
15691593
1594+ sdcLabels := getPropagableScyllaDBDatacenterLabels (sdc )
15701595 for _ , rack := range sdc .Spec .Racks {
15711596 rackNodes , err := controllerhelpers .GetRackNodeCount (sdc , rack .Name )
15721597 if err != nil {
@@ -1643,7 +1668,7 @@ func MakeJobs(sdc *scyllav1alpha1.ScyllaDBDatacenter, services map[string]*corev
16431668 klog .InfoS ("Node requires a cleanup" , "Node" , naming .ObjRef (svc ), "CurrentHash" , currentTokenRingHash , "LastCleanedUpHash" , lastCleanedUpTokenRingHash )
16441669
16451670 jobLabels := map [string ]string {}
1646- maps .Copy (jobLabels , sdc . Labels )
1671+ maps .Copy (jobLabels , sdcLabels )
16471672 maps .Copy (jobLabels , map [string ]string {
16481673 naming .ClusterNameLabel : sdc .Name ,
16491674 naming .NodeJobLabel : svcName ,
@@ -1652,9 +1677,9 @@ func MakeJobs(sdc *scyllav1alpha1.ScyllaDBDatacenter, services map[string]*corev
16521677
16531678 annotations := map [string ]string {}
16541679
1680+ sdcAnnotations := getPropagableScyllaDBDatacenterAnnotations (sdc )
16551681 // As ScyllaDBDatacenter may be managed object (when user is using scyllav1.ScyllaCluster API), managed
16561682 // hash from it shouldn't propagate into dependency objects to not trigger unnecessary double rollouts.
1657- sdcAnnotations := maps .Clone (sdc .Annotations )
16581683 delete (sdcAnnotations , naming .ManagedHash )
16591684 maps .Copy (annotations , sdcAnnotations )
16601685
@@ -1755,6 +1780,7 @@ func MakeManagedScyllaDBConfigMaps(sdc *scyllav1alpha1.ScyllaDBDatacenter) ([]*c
17551780
17561781func MakeManagedScyllaDBSnitchConfig (sdc * scyllav1alpha1.ScyllaDBDatacenter ) ([]* corev1.ConfigMap , error ) {
17571782 snitchConfigsCMs := make ([]* corev1.ConfigMap , 0 , len (sdc .Spec .Racks ))
1783+ sdcLabels := getPropagableScyllaDBDatacenterLabels (sdc )
17581784
17591785 for _ , rack := range sdc .Spec .Racks {
17601786 cm , _ , err := scylladbassets .ScyllaDBSnitchConfigTemplate .Get ().RenderObject (
@@ -1784,15 +1810,16 @@ func MakeManagedScyllaDBSnitchConfig(sdc *scyllav1alpha1.ScyllaDBDatacenter) ([]
17841810 if cm .Labels == nil {
17851811 cm .Labels = map [string ]string {}
17861812 }
1787- maps .Copy (cm .Labels , sdc . Labels )
1813+ maps .Copy (cm .Labels , sdcLabels )
17881814 maps .Copy (cm .Labels , naming .ClusterLabels (sdc ))
17891815
17901816 if cm .Annotations == nil {
17911817 cm .Annotations = map [string ]string {}
17921818 }
1819+
1820+ sdcAnnotations := getPropagableScyllaDBDatacenterAnnotations (sdc )
17931821 // As ScyllaDBDatacenter may be managed object (when user is using scyllav1.ScyllaCluster API), managed
17941822 // hash from it shouldn't propagate into dependency objects to not trigger unnecessary double rollouts.
1795- sdcAnnotations := maps .Clone (sdc .Annotations )
17961823 delete (sdcAnnotations , naming .ManagedHash )
17971824
17981825 maps .Copy (cm .Annotations , sdcAnnotations )
@@ -1857,15 +1884,17 @@ func MakeManagedScyllaDBConfig(sdc *scyllav1alpha1.ScyllaDBDatacenter) (*corev1.
18571884 if cm .Labels == nil {
18581885 cm .Labels = map [string ]string {}
18591886 }
1860- maps .Copy (cm .Labels , sdc .Labels )
1887+ sdcLabels := getPropagableScyllaDBDatacenterLabels (sdc )
1888+ maps .Copy (cm .Labels , sdcLabels )
18611889 maps .Copy (cm .Labels , naming .ClusterLabels (sdc ))
18621890
18631891 if cm .Annotations == nil {
18641892 cm .Annotations = map [string ]string {}
18651893 }
1894+
1895+ sdcAnnotations := getPropagableScyllaDBDatacenterAnnotations (sdc )
18661896 // As ScyllaDBDatacenter may be managed object (when user is using scyllav1.ScyllaCluster API), managed
18671897 // hash from it shouldn't propagate into dependency objects to not trigger unnecessary double rollouts.
1868- sdcAnnotations := maps .Clone (sdc .Annotations )
18691898 delete (sdcAnnotations , naming .ManagedHash )
18701899
18711900 maps .Copy (cm .Annotations , sdcAnnotations )
@@ -2096,8 +2125,11 @@ func MakeUpgradeContextConfigMap(sdc *scyllav1alpha1.ScyllaDBDatacenter, uc *int
20962125 labels := make (map [string ]string )
20972126 annotations := make (map [string ]string )
20982127
2099- maps .Copy (labels , sdc .Labels )
2100- maps .Copy (annotations , sdc .Annotations )
2128+ sdcLabels := getPropagableScyllaDBDatacenterLabels (sdc )
2129+ maps .Copy (labels , sdcLabels )
2130+
2131+ sdcAnnotations := getPropagableScyllaDBDatacenterAnnotations (sdc )
2132+ maps .Copy (annotations , sdcAnnotations )
21012133
21022134 maps .Copy (labels , naming .ClusterLabels (sdc ))
21032135
@@ -2116,3 +2148,19 @@ func MakeUpgradeContextConfigMap(sdc *scyllav1alpha1.ScyllaDBDatacenter, uc *int
21162148 },
21172149 }, nil
21182150}
2151+
2152+ func getPropagableScyllaDBDatacenterLabels (sdc * scyllav1alpha1.ScyllaDBDatacenter ) map [string ]string {
2153+ sdcLabels := maps .Clone (sdc .Labels )
2154+ for _ , k := range nonPropagatedLabelKeys {
2155+ delete (sdcLabels , k )
2156+ }
2157+ return sdcLabels
2158+ }
2159+
2160+ func getPropagableScyllaDBDatacenterAnnotations (sdc * scyllav1alpha1.ScyllaDBDatacenter ) map [string ]string {
2161+ sdcAnnotations := maps .Clone (sdc .Annotations )
2162+ for _ , k := range nonPropagatedAnnotationKeys {
2163+ delete (sdcAnnotations , k )
2164+ }
2165+ return sdcAnnotations
2166+ }
0 commit comments