Skip to content

Commit 61bb596

Browse files
committed
🌱 Add Finalizer for ClusterAddon object
Finalizer for ClusterAddon object to block deletion if Cluster exists Signed-off-by: janiskemper <[email protected]>
1 parent 1ea89c4 commit 61bb596

File tree

1 file changed

+9
-0
lines changed

1 file changed

+9
-0
lines changed

internal/controller/clusteraddon_controller.go

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@ import (
6363
ctrl "sigs.k8s.io/controller-runtime"
6464
"sigs.k8s.io/controller-runtime/pkg/client"
6565
"sigs.k8s.io/controller-runtime/pkg/controller"
66+
"sigs.k8s.io/controller-runtime/pkg/controller/controllerutil"
6667
"sigs.k8s.io/controller-runtime/pkg/event"
6768
"sigs.k8s.io/controller-runtime/pkg/handler"
6869
"sigs.k8s.io/controller-runtime/pkg/log"
@@ -120,6 +121,8 @@ func (r *ClusterAddonReconciler) Reconcile(ctx context.Context, req reconcile.Re
120121
}
121122
}()
122123

124+
controllerutil.AddFinalizer(clusterAddon, csov1alpha1.ClusterAddonFinalizer)
125+
123126
// retrieve associated cluster object
124127
cluster := &clusterv1.Cluster{}
125128
clusterName := client.ObjectKey{
@@ -128,6 +131,12 @@ func (r *ClusterAddonReconciler) Reconcile(ctx context.Context, req reconcile.Re
128131
}
129132

130133
if err := r.Get(ctx, clusterName, cluster); err != nil {
134+
if apierrors.IsNotFound(err) && !clusterAddon.DeletionTimestamp.IsZero() {
135+
controllerutil.RemoveFinalizer(clusterAddon, csov1alpha1.ClusterAddonFinalizer)
136+
137+
return reconcile.Result{}, nil
138+
}
139+
131140
return ctrl.Result{}, fmt.Errorf("failed to find cluster %v: %w", clusterName, err)
132141
}
133142

0 commit comments

Comments
 (0)