-
Notifications
You must be signed in to change notification settings - Fork 1.5k
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
Update dry-run KEP with kubectl plan #1399
Update dry-run KEP with kubectl plan #1399
Conversation
Hi @julianvmodesto. Thanks for your PR. I'm waiting for a kubernetes member to verify that this patch is reasonable to test. If it is, they should reply with Once the patch is verified, the new status will be reflected by the I understand the commands that are listed here. 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. |
/sig cli |
5fbd719
to
a52836b
Compare
a52836b
to
17f6843
Compare
Oh, for backwards compatibility, we need to both support |
Starting a WIP here: kubernetes/kubernetes#86143 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nits, but this lgtm.
the `dryRun` query parameter by reading the user's intent from a flag. | ||
|
||
For beta, we use `--server-dry-run` for `kubectl apply` to exercise | ||
server-side apply. This flag will be deprecated next release, then removed in 2 releases. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Since this was beta, you can remove this in one release, honestly (compare https://kubernetes.io/docs/reference/using-api/deprecation-policy/#deprecation)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ah nice, updated
/lgtm |
The KEP lives in sig-apimachinery, since it's mostly an api-machinery feature (even though this specific change is CLI related). I'll ask someone to approve since Maciej already approved. |
`none`. | ||
|
||
For backwards compatibility, we'll continue to default the value for `--dry-run` | ||
to `--dry-run=client`, which is equivalent to the existing behavior for |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't think is the place where you want to end up. I expected the command to eventually have --dry-run
mean "server-side dry run". How would you manage the transition of the default?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As a human user or in CI, the primary use case is to validate that kubectl apply --dry-run -f path/to/manifests
works. We do want to change the default to --dry-run=server
, and the expectation would not be broken for human users or CI with the new default.
I'll update the KEP to say we're introducing --dry-run=client
for backward compatibility in this release (1.18), but will deprecate this option in 1 release after (1.19), and remove it in 3 releases (1.21)? Such that we end in a state where none
and server
are the only supported values in 3 releases (1.21), with --dry-run=server
being the default.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This plan ensures that users get a clear, breaking signal that the default they were using before is broken/gone and makes that pain happen all at once. It will be disruptive, but the alternative is silently changing behavior in ways that users aren't likely to notice until something bad happens. I think this is a reasonable way forward. /approve @soltysh owns lgtm for CLI |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👍 for the plan proposed.
/lgtm
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: apelisse, deads2k, julianvmodesto, soltysh The full list of commands accepted by this bot can be found here. The pull request process is described here
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
For server-side dry-run GA, we want to support
--dry-run=server
.This change updates the KEP to describe this plan, as discussed in kubernetes/kubernetes#85652