Fix rollout race condition and display events in Jenkins log #385
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.
Fixes #382.
If there is an error while starting a rollout, we check if the version has advanced, and simply do not start a rollout.
Further, this PR introduces a new feature which I believe will help users a lot to debug issues. When something goes wrong with a deployment the cause can usually be found in either the events of the replication controller (some error prevents pod creation) or the events of the pod (some error prevents the pod from becoming active). Unfortunately, many people don't know where to look or don't have the rights to do so. To improve this situation, we now query for the events and display them in the Jenkins log when something prevents a successful rollout. It may look like this:
I have also reduced the code duplication between component and orchestration pipeline. I have done a basic test of the orchestration pipeline, but am planning to do more extensive testing anyway as I am working on #367 which requires a fair amount of refactoring.