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.
Deploy statuses has been rather tricky to maintain. Currently a resource's status is not mutually exclusive, e.g. it could be failed, started, timed_out, and successful. While initially this might have been helpful (e.g. an resource was eventually successful, but not before the timeout hit), it has actually made writing the logging code difficult. This PR is an attempt to make make statuses mutually exclusive.
Resources now expose a single method:
deploy_status
which returns the status (currently as a string, could be a symbol) from a list of statuses in order of precedence. This ensures mutually exclusive states.We also push the responsibility for the state of the deploy into the resource manager so that end users don't need to be concerned with checking each resource to determine the final state.
Part of the motivation for this PR is making changes like https://github.com/Shopify/kubernetes-deploy/pull/282/files much smaller.
Tests fail because I haven't updated the unit tests, I wanted 👀 before going all the way.