Skip to content

Commit 184d31a

Browse files
authored
fix: finalizer operations (#23)
1 parent 44a4623 commit 184d31a

File tree

1 file changed

+14
-5
lines changed

1 file changed

+14
-5
lines changed

internal/controller/pipeline_controller.go

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -84,15 +84,23 @@ func (r *PipelineReconciler) Reconcile(ctx context.Context, req ctrl.Request) (c
8484
return r.reconcileDelete(scope)
8585
}
8686

87+
if !controllerutil.ContainsFinalizer(pipeline, captainv1.PipelineFinalizer) {
88+
log.Info("adding Finalizer for pipeline")
89+
if ok := controllerutil.AddFinalizer(pipeline, captainv1.PipelineFinalizer); !ok {
90+
log.Error(nil, "failed to add finalizer to pipeline, requeing")
91+
return ctrl.Result{Requeue: true}, nil
92+
}
93+
94+
// add finalizer and update
95+
// the update will trigger a new reconciliation
96+
return ctrl.Result{}, r.Update(ctx, pipeline)
97+
}
8798
// handle pipeline reconcile
8899
return r.reconcileNormal(scope)
89100
}
90101

91102
// reconcileNormal handles normal reconciles
92103
func (r *PipelineReconciler) reconcileNormal(scope *PipelineScope) (ctrl.Result, error) {
93-
// add finalizer to the Pipeline
94-
controllerutil.AddFinalizer(scope.Pipeline, captainv1.PipelineFinalizer)
95-
96104
// check if the Pipeline has already created a deployment
97105
_, err := r.createOrUpdatePipeline(scope)
98106
if err != nil {
@@ -105,8 +113,9 @@ func (r *PipelineReconciler) reconcileNormal(scope *PipelineScope) (ctrl.Result,
105113
// reconcileNormal handles a deletion during the reconcile
106114
func (r *PipelineReconciler) reconcileDelete(scope *PipelineScope) (ctrl.Result, error) {
107115
// remove finalizer to allow the resource to be deleted
108-
controllerutil.RemoveFinalizer(scope.Pipeline, captainv1.PipelineFinalizer)
109-
116+
if controllerutil.RemoveFinalizer(scope.Pipeline, captainv1.PipelineFinalizer) {
117+
return reconcile.Result{}, r.Update(scope.Ctx, scope.Pipeline)
118+
}
110119
return reconcile.Result{}, nil
111120
}
112121

0 commit comments

Comments
 (0)