From 9657d3e5b3e9bad3fcfea227de2918d7ff608c8e Mon Sep 17 00:00:00 2001 From: Felipe Galindo Sanchez Date: Tue, 22 Mar 2022 14:44:50 -0700 Subject: [PATCH] Fix deleting a runner when pod was deleted With the current implementation if a pod is deleted, controller is failing to delete the runner as it's trying to annotate a pod that doesn't exist as we're passing a new pod object that is not an existing resource --- controllers/runner_controller.go | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/controllers/runner_controller.go b/controllers/runner_controller.go index 907bcc9f..4b2dad64 100644 --- a/controllers/runner_controller.go +++ b/controllers/runner_controller.go @@ -106,15 +106,16 @@ func (r *RunnerReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctr return ctrl.Result{}, nil } } else { + // Request to remove a runner. DeletionTimestamp was set in the runner - we need to unregister runner var pod corev1.Pod if err := r.Get(ctx, req.NamespacedName, &pod); err != nil { if !kerrors.IsNotFound(err) { log.Info(fmt.Sprintf("Retrying soon as we failed to get runner pod: %v", err)) return ctrl.Result{Requeue: true}, nil } + // Pod was not found + return r.processRunnerDeletion(runner, ctx, log, nil) } - - // Request to remove a runner. DeletionTimestamp was set in the runner - we need to unregister runner return r.processRunnerDeletion(runner, ctx, log, &pod) }