Skip to content

Commit ddc2918

Browse files
authored
Requeue if create pod returns already exists error (#4201)
1 parent 0e006bb commit ddc2918

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed

controllers/actions.github.com/ephemeralrunner_controller.go

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -268,13 +268,15 @@ func (r *EphemeralRunnerReconciler) Reconcile(ctx context.Context, req ctrl.Requ
268268
log.Error(err, "Failed to fetch the pod")
269269
return ctrl.Result{}, err
270270
}
271+
log.Info("Ephemeral runner pod does not exist. Creating new ephemeral runner")
271272

272-
// Pod was not found. Create if the pod has never been created
273-
log.Info("Creating new EphemeralRunner pod.")
274273
result, err := r.createPod(ctx, ephemeralRunner, secret, log)
275274
switch {
276275
case err == nil:
277276
return result, nil
277+
case kerrors.IsAlreadyExists(err):
278+
log.Info("Runner pod already exists. Waiting for the pod event to be received")
279+
return ctrl.Result{Requeue: true, RequeueAfter: 5 * time.Second}, nil
278280
case kerrors.IsInvalid(err) || kerrors.IsForbidden(err):
279281
log.Error(err, "Failed to create a pod due to unrecoverable failure")
280282
errMessage := fmt.Sprintf("Failed to create the pod: %v", err)

0 commit comments

Comments
 (0)