+ logger := log.FromContext(ctx)
+ logger.Info("Reconcilling RIC")
+ instance := &ricdeployv1.RicPlatform{}
+ err := r.Get(context.TODO(), req.NamespacedName, instance)
+ if err != nil {
+ if errors.IsNotFound(err) {
+ // object not found, could have been deleted after reconcile request, hence don't requeue
+ return ctrl.Result{}, nil
+ }
+ // error reading the object, requeue the request
+ return ctrl.Result{}, err
+ }
+
+ // name of our custom finalizer
+ myFinalizerName := "batch.tutorial.kubebuilder.io/finalizer"
+ // examine DeletionTimestamp to determine if object is under deletion
+ if instance.ObjectMeta.DeletionTimestamp.IsZero() {
+ // Adding a Finaliser also adds the DeletionTimestamp while deleting
+ if !controllerutil.ContainsFinalizer(instance, myFinalizerName) {
+ controllerutil.AddFinalizer(instance, myFinalizerName)
+ if err := r.Update(ctx, instance); err != nil {
+ return ctrl.Result{}, err
+ }
+ }
+ } else {
+ // The object is being deleted
+ if controllerutil.ContainsFinalizer(instance, myFinalizerName) {
+ // remove our finalizer from the list and update it.
+ controllerutil.RemoveFinalizer(instance, myFinalizerName)
+ if err := r.Update(ctx, instance); err != nil {
+ return ctrl.Result{}, err
+ }
+ }
+
+ // Stop reconciliation as the item is being deleted
+ return ctrl.Result{}, nil
+ }
+