Remove blocking 'wait' components
Summary
runJobAndWait is used in a few places across the codebase, which creates a blocking task. This means that the reconcile loop will pause at these points and wait until the job is finished.
This breaks the general pattern of operator reconcile loops, which should:
- Run as far as possible through the reconcile loop
- When a condition is not met, take corrective action
- Exit and requeue (usually after a delay)
- Run as far as possible again
- If previously unmet condition is met, continue
- If previously unmet condition is not met, repeat steps above
The indirect benefit of this approach is that updates to the CR can be more quickly addressed. Without this change, updates to the CR are ignored until the blocking task completes or times out.
Acceptance criteria
-
runJobAndWait
is removed -
When a task can take some time, exit the reconcile loop with a requeue (after a delay)
Edited by Mitchell Nielsen