Normative example for release mode#2044
Conversation
| but can be accessed for testing, verification, etc under the | ||
| `next.my-service...` name. | ||
|
|
||
| An admission hook prevents changing `revisions` without also setting |
There was a problem hiding this comment.
I don't think we should prevent this.
It's possible to completely overwrite the revisions array and effect a sharp traffic change.
evankanderson
left a comment
There was a problem hiding this comment.
This looks good, though I think you were going to add some text on handling rollbacks and using annotations to track images.
| current 100% def 2018-01-18 20:34 user1 a6f92d1 | ||
| abc 2018-01-17 10:32 user1 33643fc | ||
|
|
||
| $ knative release begin ghi |
There was a problem hiding this comment.
Not sure how this happened, but --service got lost here and on the next two commands.
There was a problem hiding this comment.
Should be good now.
|
Ok, responded to comments, and another editing pass. Passive voice hides what the user does vs what a controller does 😝 |
|
what do people think of moving |
Seems fine, but not for this PR? We can handle that separately for v1apha2, since it's backcompat-breaking. Seems like Mike is for it too: #1865 (comment) |
|
Ping I think this is ready. |
|
|
||
| $ knative revisions list --service my-service | ||
| Route Traffic Id Date Deployer Git SHA | ||
| current,latest 100% def 2018-01-18 20:34 user1 a6f92d1 |
There was a problem hiding this comment.
Is the expectation here that changing to the release strategy created the route names 'current' and 'latest', or is it expected that these names were created by a previous release strategy (i.e. runLatest)?
There was a problem hiding this comment.
Yes. Changing to release strategy makes these route subnames.
| $ knative revisions list --service my-service | ||
| Route Traffic Id Date Deployer Git SHA | ||
| next,latest 5% ghi 2018-01-19 12:16 user1 a6f92d1 | ||
| current 100% def 2018-01-18 20:34 user1 a6f92d1 |
There was a problem hiding this comment.
Shouldn't this be 95% since we have 5% going to 'ghi'?
| $ knative deploy --service my-service --env HELLO="blurg" | ||
| [...] | ||
| Deployed revision ghi to https://latest.my-service.default.mydomain.com | ||
| You can begin rolling out this revision with [knative rollout begin ghi] |
There was a problem hiding this comment.
You have knative rollout here, but the commands below are against knative release.
| $ knative release --service my-service percent 50 | ||
| [...] | ||
| $ knative rollout finish | ||
| $ knative release --service my-service finish |
There was a problem hiding this comment.
Just to confirm, the strategy for deploy will stay the same even after a finish? For example, a new deploy will move the latest route to the new revision with 0% traffic?
There was a problem hiding this comment.
Confirmed. In release mode adding a new revision moves latest but not current or next, and does not change the allocated percentage if there is a split.
| name: my-service | ||
| spec: | ||
| release: | ||
| revisions: [abc] |
There was a problem hiding this comment.
This seems equivalent to rolloutPercent: 0 with both revisions in the list. However, setting rolloutPercent would preserve the ability to easily visualize that this is rolled back from 'next'. Thoughts?
There was a problem hiding this comment.
That's a good point, but that leaves you in the mid-release state. I think a rollback shouldn't do that, since you've determined you should not release to next. Better to wait until you get a new latest to release to.
| revision is now the current revision. | ||
|
|
||
|  | ||
|  |
There was a problem hiding this comment.
'manual' here seems confusing with the addition of 'manual' type that removes the Service from control of the underlying Configuration and Route.
There was a problem hiding this comment.
It was just the name of the image left over. Changed taht.
|
@sixolet I noticed this in the backlog, and am curious what's outstanding to land it? |
| $ knative rollout next percent 5 | ||
| $ knative revisions list --service my-service | ||
| Route Traffic Id Date Deployer Git SHA | ||
| next,latest 0% ghi 2018-01-19 12:16 user1 a6f92d1 |
There was a problem hiding this comment.
'next' was changed to 'candidate' so might be worth a s/next/candidate/g
Otherwise this lgtm to close out.
|
Got around to making the s/next/candidate/ finally. |
|
/lgtm |
|
/assign @evankanderson for approval |
|
@jonjohnsonjr: GitHub didn't allow me to assign the following users: for, approval. Note that only knative members and repo collaborators can be assigned. DetailsIn response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. |
|
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: evankanderson, sixolet The full list of commands accepted by this bot can be found here. The pull request process is described here DetailsNeeds approval from an approver in each of these files:
Approvers can indicate their approval by writing |
|
It looks like there is a conflict now, but I (or anyone else) can /lgtm after you've resolved the conflict and pushed. |
Fixes #
Proposed Changes
Describe release mode in a normative example.
Edited the old "manual mode" normative example, as our concept of what "manual mode" is has evolved.
Refers to the proposal in: #1865 (comment)
Release Note