in pkg/controllers/serviceexport_controller.go [188:215]
func (r *ServiceExportReconciler) handleDelete(ctx context.Context, serviceExport *v1alpha1.ServiceExport) (ctrl.Result, error) {
if controllerutil.ContainsFinalizer(serviceExport, ServiceExportFinalizer) {
r.Log.Info("removing service export", "namespace", serviceExport.Namespace, "name", serviceExport.Name)
cmService, err := r.CloudMap.GetService(ctx, serviceExport.Namespace, serviceExport.Name)
if err != nil {
r.Log.Error(err, "error fetching Service from Cloud Map",
"namespace", serviceExport.Namespace, "name", serviceExport.Name)
return ctrl.Result{}, err
}
if cmService != nil {
if err := r.CloudMap.DeleteEndpoints(ctx, cmService.Namespace, cmService.Name, cmService.Endpoints); err != nil {
r.Log.Error(err, "error deleting Endpoints from Cloud Map",
"namespace", cmService.Namespace, "name", cmService.Name)
return ctrl.Result{}, err
}
}
// Remove finalizer. Once all finalizers have been
// removed, the ServiceExport object will be deleted.
controllerutil.RemoveFinalizer(serviceExport, ServiceExportFinalizer)
if err := r.Client.Update(ctx, serviceExport); err != nil {
return ctrl.Result{}, err
}
}
return ctrl.Result{}, nil
}