From 60f1f5240b958375b167f03bda6377ba02c9b8a6 Mon Sep 17 00:00:00 2001 From: "Roland.Ma" Date: Wed, 31 Mar 2021 14:16:27 +0000 Subject: [PATCH 1/2] fix:group was updated continuously in member cluster Signed-off-by: Roland.Ma --- pkg/controller/group/group_controller.go | 37 ++++++++++++------------ 1 file changed, 19 insertions(+), 18 deletions(-) diff --git a/pkg/controller/group/group_controller.go b/pkg/controller/group/group_controller.go index fbae3f303..0a3905891 100644 --- a/pkg/controller/group/group_controller.go +++ b/pkg/controller/group/group_controller.go @@ -146,29 +146,30 @@ func (c *Controller) reconcile(key string) error { } if group.Labels != nil { - // Set OwnerReferences when the group has a parent. - if parent, ok := group.Labels[iam1alpha2.GroupParent]; ok && !k8sutil.IsControlledBy(group.OwnerReferences, "Group", parent) { - if g == nil { - g = group.DeepCopy() - } - groupParent, err := c.groupLister.Get(parent) - if err != nil { - if errors.IsNotFound(err) { - utilruntime.HandleError(fmt.Errorf("Parent group '%s' no longer exists", key)) - delete(group.Labels, iam1alpha2.GroupParent) - } else { - klog.Error(err) - return err + // Set OwnerReferences when the group has a parent. And it's owned by kubefed + if group.Labels[constants.KubefedManagedLabel] != "true" { + if parent, ok := group.Labels[iam1alpha2.GroupParent]; ok && !k8sutil.IsControlledBy(group.OwnerReferences, "Group", parent) { + if g == nil { + g = group.DeepCopy() } - } else { - if err := controllerutil.SetControllerReference(groupParent, g, scheme.Scheme); err != nil { - klog.Error(err) - return err + groupParent, err := c.groupLister.Get(parent) + if err != nil { + if errors.IsNotFound(err) { + utilruntime.HandleError(fmt.Errorf("Parent group '%s' no longer exists", key)) + delete(group.Labels, iam1alpha2.GroupParent) + } else { + klog.Error(err) + return err + } + } else { + if err := controllerutil.SetControllerReference(groupParent, g, scheme.Scheme); err != nil { + klog.Error(err) + return err + } } } } } - if g != nil { if _, err = c.ksClient.IamV1alpha2().Groups().Update(context.Background(), g, metav1.UpdateOptions{}); err != nil { return err From 8e1aa7848dae2a4874b79b70f22addd35c815501 Mon Sep 17 00:00:00 2001 From: "Roland.Ma" Date: Thu, 1 Apr 2021 03:15:14 +0000 Subject: [PATCH 2/2] refine comments Signed-off-by: Roland.Ma --- pkg/controller/group/group_controller.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/controller/group/group_controller.go b/pkg/controller/group/group_controller.go index 0a3905891..6a0f35a28 100644 --- a/pkg/controller/group/group_controller.go +++ b/pkg/controller/group/group_controller.go @@ -146,7 +146,7 @@ func (c *Controller) reconcile(key string) error { } if group.Labels != nil { - // Set OwnerReferences when the group has a parent. And it's owned by kubefed + // Set OwnerReferences when the group has a parent. And it's not owned by kubefed if group.Labels[constants.KubefedManagedLabel] != "true" { if parent, ok := group.Labels[iam1alpha2.GroupParent]; ok && !k8sutil.IsControlledBy(group.OwnerReferences, "Group", parent) { if g == nil {