From ab830c2eabae9bbbe0c6f4c9f1baff1fe2aff3cb Mon Sep 17 00:00:00 2001 From: Himanshu Roy Date: Wed, 25 Sep 2024 12:40:33 +0530 Subject: [PATCH] remove dataimage finalizer if bmh is missing Signed-off-by: Himanshu Roy --- controllers/metal3.io/dataimage_controller.go | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/controllers/metal3.io/dataimage_controller.go b/controllers/metal3.io/dataimage_controller.go index b24a8e9178..60eba09ac0 100644 --- a/controllers/metal3.io/dataimage_controller.go +++ b/controllers/metal3.io/dataimage_controller.go @@ -111,7 +111,13 @@ func (r *DataImageReconciler) Reconcile(ctx context.Context, req ctrl.Request) ( if err := r.Get(ctx, req.NamespacedName, bmh); err != nil { // There might not be any BareMetalHost for the DataImage if k8serrors.IsNotFound(err) { - reqLogger.Info("bareMetalHost not found for the dataImage") + reqLogger.Info("bareMetalHost not found for the dataImage, remove finalizer if it exists") + di.Finalizers = utils.FilterStringFromList( + di.Finalizers, metal3api.DataImageFinalizer) + + if err := r.Update(ctx, di); err != nil { + return ctrl.Result{Requeue: true, RequeueAfter: dataImageRetryDelay}, fmt.Errorf("failed to update resource after remove finalizer, %w", err) + } return ctrl.Result{}, nil }