From ab830c2eabae9bbbe0c6f4c9f1baff1fe2aff3cb Mon Sep 17 00:00:00 2001 From: Himanshu Roy Date: Wed, 25 Sep 2024 12:40:33 +0530 Subject: [PATCH 1/2] 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 } From f634fecd3b0f6257a6fc22027f55f169a9ef1493 Mon Sep 17 00:00:00 2001 From: Himanshu Roy Date: Fri, 25 Oct 2024 16:15:55 +0530 Subject: [PATCH 2/2] reduce dataImage unmanagedRetryDelay to 20 seconds Signed-off-by: Himanshu Roy (cherry picked from commit be67a8912b5d3a0f0f3968bff02279e6ea24561a) --- controllers/metal3.io/dataimage_controller.go | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/controllers/metal3.io/dataimage_controller.go b/controllers/metal3.io/dataimage_controller.go index 60eba09ac0..a9e4f572ef 100644 --- a/controllers/metal3.io/dataimage_controller.go +++ b/controllers/metal3.io/dataimage_controller.go @@ -36,8 +36,9 @@ import ( ) const ( - dataImageRetryDelay = time.Second * 60 - dataImageUpdateDelay = time.Second * 30 + dataImageRetryDelay = time.Second * 60 + dataImageUpdateDelay = time.Second * 30 + dataImageUnmanagedRetryDelay = time.Second * 20 ) // DataImageReconciler reconciles a DataImage object. @@ -129,7 +130,7 @@ func (r *DataImageReconciler) Reconcile(ctx context.Context, req ctrl.Request) ( if hasDetachedAnnotation(bmh) { reqLogger.Info("the host is detached, not running reconciler") - return ctrl.Result{Requeue: true, RequeueAfter: unmanagedRetryDelay}, nil + return ctrl.Result{Requeue: true, RequeueAfter: dataImageUnmanagedRetryDelay}, nil } // If the reconciliation is paused, requeue