in pkg/controllers/multiclusterservice/controller.go [113:147]
func (r *Reconciler) handleDelete(ctx context.Context, mcs *fleetnetv1alpha1.MultiClusterService) (ctrl.Result, error) {
mcsKObj := klog.KObj(mcs)
// The mcs is being deleted
if !controllerutil.ContainsFinalizer(mcs, multiClusterServiceFinalizer) {
klog.V(4).InfoS("multiClusterService is being deleted", "multiClusterService", mcsKObj)
return ctrl.Result{}, nil
}
klog.V(2).InfoS("Removing mcs", "multiClusterService", mcsKObj)
// delete derived service in the fleet-system namespace
serviceName := r.derivedServiceFromLabel(mcs)
if err := r.deleteDerivedService(ctx, serviceName); err != nil {
klog.ErrorS(err, "Failed to remove derived service of mcs", "multiClusterService", mcsKObj)
if !errors.IsNotFound(err) {
return ctrl.Result{}, err
}
}
// delete service import in the same namespace as the multi-cluster service
serviceImportName := r.serviceImportFromLabel(mcs)
if err := r.deleteServiceImport(ctx, serviceImportName); err != nil {
klog.ErrorS(err, "Failed to remove service import of mcs", "multiClusterService", mcsKObj)
if !errors.IsNotFound(err) {
return ctrl.Result{}, err
}
}
r.Recorder.Eventf(mcs, corev1.EventTypeNormal, "UnimportedService", "Unimported service %s", serviceImportName)
controllerutil.RemoveFinalizer(mcs, multiClusterServiceFinalizer)
if err := r.Client.Update(ctx, mcs); err != nil {
klog.ErrorS(err, "Failed to remove mcs finalizer", "multiClusterService", mcsKObj)
return ctrl.Result{}, err
}
return ctrl.Result{}, nil
}