@@ -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