Implement confirm rollout gate, hook and API #251
Merged
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.
This PR adds the
confirm-rollout
webhook type. The confirmation hooks are executed before thepre-rollout
hooks. Flagger will halt the canary traffic shifting and analysis until the confirm webhook returns HTTP status 200.Manual gating:
The
/gate/halt
returns HTTP 403 thus blocking the rollout. If you have notifications enabled, Flagger will post a message to Slack or MS Teams if a canary rollout is waiting for approval.Change the URL to
/gate/approve
to start the canary analysis:Manual gating API:
Set the confirmation URL to
/gate/check
:By default the gate is closed, you can start or resume the canary rollout with:
Pause rollout:
curl -d '{"name": "podinfo","namespace":"test"}' http://localhost:8080/gate/close
Note that in order to tests this PR you have to update the Canary CRD and use the following images:
Fix: #163