in pkg/controllers/member/internalmembercluster/v1alpha1/controller.go [175:209]
func (r *Reconciler) cleanupMCSRelatedResources(ctx context.Context) error {
list := &fleetnetv1alpha1.MultiClusterServiceList{}
if err := r.MemberClient.List(ctx, list); err != nil {
klog.ErrorS(err, "Failed to list multiClusterService")
return err
}
for i := range list.Items {
if list.Items[i].ObjectMeta.DeletionTimestamp != nil {
continue
}
deleteFunc := func() error {
return r.MemberClient.Delete(ctx, &list.Items[i])
}
if err := apiretry.Do(deleteFunc); err != nil && !apierrors.IsNotFound(err) {
klog.ErrorS(err, "Failed to delete multiClusterService", "multiClusterService", klog.KObj(&list.Items[i]))
return err
}
}
for i := range list.Items {
name := types.NamespacedName{Namespace: list.Items[i].GetNamespace(), Name: list.Items[i].GetName()}
mcs := fleetnetv1alpha1.MultiClusterService{}
getFunc := func() error {
err := r.MemberClient.Get(ctx, name, &mcs)
return err
}
if err := apiretry.WaitUntilObjectDeleted(ctx, getFunc); err != nil {
klog.ErrorS(err, "Wait the multiClusterService to be deleted", "multiClusterService", name)
return err
}
}
klog.V(2).InfoS("Completed cleanup mcs related resources", "mcsCounter", len(list.Items))
return nil
}