[JENKINS-60434] Control pausing pipeline builds during quieting down period #932
+157
−35
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Change description
Adding a few new features as well as the needed configuration parameters:
The feature implemented in this PR relates to the discussion in JENKINS-60434
The motivation for this change
We a running a large amount of individual Jenkins instances. That all run in Kubernetes. These are orchestrated by the Jenkins Operator and when a restart is needed by a reconcile loop, the operator does not wait for builds to finish -> causing abandoned build agents.
With this change it will be possible to introduce a grace period (the timeout) in which remaining builds can finish their work. When this grace period is over, any remaining builds will be aborted. This drains all nodes and makes it possible to perform a clean shutdown of Jenkins.
Testing done
Added a couple of new test cases that run through the different scenarios.
Also performed additional manual tests to ensure that the desired behaviour persists when running with build agents in Kubernetes.
Submitter checklist