@@ -1394,11 +1394,26 @@ func (r *ReconcileArgoCD) cleanupLabelsFromDeployment(argocd *argoproj.ArgoCD, d
13941394 return fmt .Errorf ("failed to get deployment %s: %w" , deploymentName , err )
13951395 }
13961396
1397- currentLabels := r .removeLabelsFromObject (deployment , labelsToRemove )
1398- deployment .Spec .Template .Labels = currentLabels
1399- if err := r .Update (context .TODO (), deployment ); err != nil {
1400- log .Error (err , "failed to update deployment after removing labels" , "name" , deploymentName )
1401- return err
1397+ // Work on pod template labels directly, not deployment metadata labels
1398+ currentLabels := deployment .Spec .Template .Labels
1399+ if currentLabels == nil {
1400+ return nil // No labels to remove
1401+ }
1402+
1403+ modified := false
1404+ for _ , labelKey := range labelsToRemove {
1405+ if _ , exists := currentLabels [labelKey ]; exists {
1406+ delete (currentLabels , labelKey )
1407+ modified = true
1408+ }
1409+ }
1410+
1411+ if modified {
1412+ deployment .Spec .Template .Labels = currentLabels
1413+ if err := r .Update (context .TODO (), deployment ); err != nil {
1414+ log .Error (err , "failed to update deployment after removing labels" , "name" , deploymentName )
1415+ return err
1416+ }
14021417 }
14031418 return nil
14041419}
@@ -1417,11 +1432,26 @@ func (r *ReconcileArgoCD) cleanupLabelsFromStatefulSet(argocd *argoproj.ArgoCD,
14171432 return fmt .Errorf ("failed to get statefulset %s: %w" , statefulSetName , err )
14181433 }
14191434
1420- currentLabels := r .removeLabelsFromObject (statefulSet , labelsToRemove )
1421- statefulSet .SetLabels (currentLabels )
1422- if err := r .Update (context .TODO (), statefulSet ); err != nil {
1423- log .Error (err , "failed to update statefulset after removing labels" , "name" , statefulSetName )
1424- return err
1435+ // Work on pod template labels directly, not StatefulSet metadata labels
1436+ currentLabels := statefulSet .Spec .Template .Labels
1437+ if currentLabels == nil {
1438+ return nil // No labels to remove
1439+ }
1440+
1441+ modified := false
1442+ for _ , labelKey := range labelsToRemove {
1443+ if _ , exists := currentLabels [labelKey ]; exists {
1444+ delete (currentLabels , labelKey )
1445+ modified = true
1446+ }
1447+ }
1448+
1449+ if modified {
1450+ statefulSet .Spec .Template .Labels = currentLabels
1451+ if err := r .Update (context .TODO (), statefulSet ); err != nil {
1452+ log .Error (err , "failed to update statefulset after removing labels" , "name" , statefulSetName )
1453+ return err
1454+ }
14251455 }
14261456
14271457 return nil
@@ -1495,25 +1525,6 @@ func (r *ReconcileArgoCD) calculateRemovedSpecLabels(oldCR, newCR *argoproj.Argo
14951525
14961526}
14971527
1498- func (r * ReconcileArgoCD ) removeLabelsFromObject (obj client.Object , labelsToRemove []string ) map [string ]string {
1499- currentLabels := obj .GetLabels ()
1500- if currentLabels == nil {
1501- return nil
1502- }
1503-
1504- modified := false
1505- for _ , labelKey := range labelsToRemove {
1506- if _ , exists := currentLabels [labelKey ]; exists {
1507- delete (currentLabels , labelKey )
1508- modified = true
1509- }
1510- }
1511- if modified {
1512- return currentLabels
1513- }
1514- return currentLabels
1515- }
1516-
15171528// deleteRBACsForNamespace deletes the RBACs when the label from the namespace is removed.
15181529func deleteRBACsForNamespace (sourceNS string , k8sClient kubernetes.Interface ) error {
15191530 log .Info (fmt .Sprintf ("Removing the RBACs created for the namespace: %s" , sourceNS ))
0 commit comments