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. DetailsInstructions 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 |
| 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.
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.
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.
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.
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.
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 |
soltysh
left a comment
There was a problem hiding this comment.
👍 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 DetailsNeeds approval from an approver in each of these files:
Approvers can indicate their approval by writing |
…tations OpenShift API Conventions: no annotations convention
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