Skip to content

Commit

Permalink
fix: finalizer operations (#23)
Browse files Browse the repository at this point in the history
  • Loading branch information
eduardodbr committed May 18, 2024
1 parent 44a4623 commit 184d31a
Showing 1 changed file with 14 additions and 5 deletions.
19 changes: 14 additions & 5 deletions internal/controller/pipeline_controller.go
Original file line number Diff line number Diff line change
Expand Up @@ -84,15 +84,23 @@ func (r *PipelineReconciler) Reconcile(ctx context.Context, req ctrl.Request) (c
return r.reconcileDelete(scope)
}

if !controllerutil.ContainsFinalizer(pipeline, captainv1.PipelineFinalizer) {
log.Info("adding Finalizer for pipeline")
if ok := controllerutil.AddFinalizer(pipeline, captainv1.PipelineFinalizer); !ok {
log.Error(nil, "failed to add finalizer to pipeline, requeing")
return ctrl.Result{Requeue: true}, nil
}

// add finalizer and update
// the update will trigger a new reconciliation
return ctrl.Result{}, r.Update(ctx, pipeline)
}
// handle pipeline reconcile
return r.reconcileNormal(scope)
}

// reconcileNormal handles normal reconciles
func (r *PipelineReconciler) reconcileNormal(scope *PipelineScope) (ctrl.Result, error) {
// add finalizer to the Pipeline
controllerutil.AddFinalizer(scope.Pipeline, captainv1.PipelineFinalizer)

// check if the Pipeline has already created a deployment
_, err := r.createOrUpdatePipeline(scope)
if err != nil {
Expand All @@ -105,8 +113,9 @@ func (r *PipelineReconciler) reconcileNormal(scope *PipelineScope) (ctrl.Result,
// reconcileNormal handles a deletion during the reconcile
func (r *PipelineReconciler) reconcileDelete(scope *PipelineScope) (ctrl.Result, error) {
// remove finalizer to allow the resource to be deleted
controllerutil.RemoveFinalizer(scope.Pipeline, captainv1.PipelineFinalizer)

if controllerutil.RemoveFinalizer(scope.Pipeline, captainv1.PipelineFinalizer) {
return reconcile.Result{}, r.Update(scope.Ctx, scope.Pipeline)
}
return reconcile.Result{}, nil
}

Expand Down

0 comments on commit 184d31a

Please sign in to comment.