-
Notifications
You must be signed in to change notification settings - Fork 899
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add conditions to allow to wait for rollout pauses & completions #352
Comments
This is a valid use case. In fact, we have something similar in our own pipelines, but since our deploys are done through Argo CD, we use:
It would be good to support this either using native |
The condition for a "paused" rollout appears to be type conditions:
- lastTransitionTime: "2020-01-24T22:25:44Z"
lastUpdateTime: "2020-01-24T22:25:44Z"
message: Rollout has minimum availability
reason: AvailableReason
status: "True"
type: Available
- lastTransitionTime: "2020-01-25T00:40:45Z"
lastUpdateTime: "2020-01-25T00:40:45Z"
message: Rollout is paused
reason: RolloutPaused
status: Unknown
type: Progressing with that you can use the following kubectl wait --for=condition=Progressing=Unknown rollout/rollout-bluegreen
rollout.argoproj.io/rollout-bluegreen condition met Might be worth having an explicit kubectl wait --for=condition=RolloutPaused rollout/rollout-bluegreen If you guys think it's worthy I can take a cut at implementing that. |
Came here cause I'm looking for something similar. We have a case where currently deployments are validated using I'm in the process of promoting ArgoCD but the team who'll be using this initially won't be moving over. Current thinking is to stick something like the below in an until/while loop
|
We have a workflow where we use
make
to rollout a new version, wait until the preview deployment is available, run some smoke tests, and then promote or rollback based on the result. Pretty basic. But for this to work we have to figure out when blue green rollout has paused.I have found the
kubectl wait
command and looked a bit at how it works, waiting for conditions. But it seems it blocks the flow until the condition has it'sstatus==true
, which is not the case for paused BlueGreen rollouts. I didn't find a different way to wait for other metadata information in an object, so I had to implement my own loop and put it in a separate shell script.I'd prefer to be able to use something like
kubectl wait rollout $rollout --for=condition=PausedForPreview
or something like that.I haven't looked into the way canaries behave, but this would also be beneficial for canaries with (multiple) indefinite pause steps.
For reference:
Paused BlueGreen rollout (
kubectl get rollout $rollout --output=json | jq .status
):Fully deployed BlueGreen rollout:
This is the script I currently use to wait for that condition:
The text was updated successfully, but these errors were encountered: