From 792c7ecc37e807940bf69dd7c9428b99c88a6e01 Mon Sep 17 00:00:00 2001 From: Hans Rakers Date: Wed, 15 May 2024 16:17:41 +0200 Subject: [PATCH] fix: Remove finalizer if affinity group is already deleted on Cloudstack Upstream PR https://github.com/kubernetes-sigs/cluster-api-provider-cloudstack/pull/340 --- controllers/cloudstackaffinitygroup_controller.go | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/controllers/cloudstackaffinitygroup_controller.go b/controllers/cloudstackaffinitygroup_controller.go index 95c6e12b..f1e880d2 100644 --- a/controllers/cloudstackaffinitygroup_controller.go +++ b/controllers/cloudstackaffinitygroup_controller.go @@ -78,9 +78,14 @@ func (r *CloudStackAGReconciliationRunner) Reconcile() (ctrl.Result, error) { } func (r *CloudStackAGReconciliationRunner) ReconcileDelete() (ctrl.Result, error) { - group := &cloud.AffinityGroup{Name: r.ReconciliationSubject.Name} + group := &cloud.AffinityGroup{Name: r.ReconciliationSubject.Spec.Name} _ = r.CSUser.FetchAffinityGroup(group) - if group.ID == "" { // Affinity group not found, must have been deleted. + // Affinity group not found, must have been deleted. + if group.ID == "" { + // Deleting affinity groups on Cloudstack can return error but succeed in + // deleting the affinity group. Removing finalizer if affinity group is not + // present on Cloudstack ensures affinity group object deletion is not blocked. + controllerutil.RemoveFinalizer(r.ReconciliationSubject, infrav1.AffinityGroupFinalizer) return ctrl.Result{}, nil } if err := r.CSUser.DeleteAffinityGroup(group); err != nil {