You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -137,17 +138,17 @@ Items marked with (R) are required *prior to targeting to a milestone / release*
137
138
-[x] (R) Enhancement issue in release milestone, which links to KEP dir in [kubernetes/enhancements] (not the initial KEP PR)
138
139
-[x] (R) KEP approvers have approved the KEP status as `implementable`
139
140
-[x] (R) Design details are appropriately documented
140
-
-[] (R) Test plan is in place, giving consideration to SIG Architecture and SIG Testing input (including test refactors)
141
-
-[] e2e Tests for all Beta API Operations (endpoints)
141
+
-[x] (R) Test plan is in place, giving consideration to SIG Architecture and SIG Testing input (including test refactors)
142
+
-[x] e2e Tests for all Beta API Operations (endpoints)
142
143
-[ ] (R) Ensure GA e2e tests for meet requirements for [Conformance Tests](https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/conformance-tests.md)
143
144
-[ ] (R) Minimum Two Week Window for GA e2e tests to prove flake free
144
-
-[] (R) Graduation criteria is in place
145
-
-[] (R) [all GA Endpoints](https://github.com/kubernetes/community/pull/1806) must be hit by [Conformance Tests](https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/conformance-tests.md)
145
+
-[x] (R) Graduation criteria is in place
146
+
-[x] (R) [all GA Endpoints](https://github.com/kubernetes/community/pull/1806) must be hit by [Conformance Tests](https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/conformance-tests.md)
146
147
-[x] (R) Production readiness review completed
147
148
-[x] (R) Production readiness review approved
148
149
-[x] "Implementation History" section is up-to-date for milestone
149
-
-[] User-facing documentation has been created in [kubernetes/website], for publication to [kubernetes.io]
150
-
-[] Supporting documentation—e.g., additional design documents, links to mailing list discussions/SIG meetings, relevant PRs/issues, release notes
150
+
-[x] User-facing documentation has been created in [kubernetes/website], for publication to [kubernetes.io]
151
+
-[x] Supporting documentation—e.g., additional design documents, links to mailing list discussions/SIG meetings, relevant PRs/issues, release notes
151
152
152
153
<!--
153
154
**Note:** This checklist is iterative and should be reviewed and updated every time this enhancement is being considered for a milestone.
@@ -261,6 +262,12 @@ As a user I would like to be able to opt out of deprecation warnings.
261
262
262
263
https://github.com/kubernetes/kubectl/issues/1317
263
264
265
+
#### Story 5
266
+
267
+
As a user I'd like to be warned if my kuberc file is no longer being used after first use.
@@ -295,6 +302,7 @@ Consider including folks who also work outside the SIG or subproject.
295
302
| Risk | Impact | Mitigation |
296
303
| --- | --- | --- |
297
304
| Confusing users with a new config file | Low | Documentation and education |
305
+
| Users trust the kuberc is being used | High | Provide mechanism warning users default kuberc is not being picked up |
298
306
299
307
## Design Details
300
308
@@ -305,21 +313,32 @@ required) or even code snippets. If there's any ambiguity about HOW your
305
313
proposal will be implemented, this is the place to discuss them.
306
314
-->
307
315
308
-
During alpha this feature will be enabled through the `KUBECTL_KUBERC=true` environment variable. The file will default to being located in `~/.kube/kuberc`. A flag will allow overriding this default location with a path i.e. `kubectl --kuberc /var/kube/rc`.
316
+
For beta this feature will be enabled by default. However users can disable it
317
+
setting the `KUBECTL_KUBERC` environment variable to `false`.
309
318
310
-
Three initial top level keys are proposed.
319
+
By default, the configuration file will be located in `~/.kube/kuberc`. A flag
320
+
will allow overriding this default location with a specific path, for example:
321
+
`kubectl --kuberc /var/kube/rc`.
311
322
312
-
*`apiVersion` to determine the version of the config.
313
-
*`kind` to keep consistency with Kubernetes resources.
314
-
*`aliases` for users to declare their own aliases for commands with flags and values.
315
-
*`overrides` for users to set default flags to apply to commands.
323
+
The following top-level keys are proposed, alongside the kubernetes `metav1.TypeMeta`
324
+
fields (`apiVersion`, `kind`):
316
325
317
-
`aliases` will not be allowed to override builtins but take precedence of plugins i.e. builtins -> aliases -> plugins. Additional flags and values will be appended to the end of the aliased command. It is the responsibility of the user to define aliases with this in mind.
326
+
*`aliases` Allows users to declare their own command aliases, including flags and values.
327
+
*`overrides` Enables users to set default flags to be applied to commands.
318
328
319
-
`overrides` is modeled after all configurable behavior being implemented as flags first. This is a design decision that was made after modeling out the intended behavior and realizing that targeting flags filled the use cases. A merge will be done in the execution of the command for flags with inline overrides taking precedence.
329
+
`aliases` will not be permitted to override built-in commands but will take
330
+
precedence over plugins (builtins -> aliases -> plugins). Any additional flags
331
+
and values will be appended to the end of the aliased command. Users are
332
+
responsible for defining aliases with this behavior in mind.
333
+
334
+
`overrides` is designed based on the principle that all configurable behavior is
335
+
initially implemented as flags. This design decision was made after analyzing the
336
+
intended behavior and realizing that targeting flags effectively addresses the
337
+
use cases. During command execution, a merge will be occur, with inline overrides
338
+
taking precedence over the defaults.
320
339
321
340
```
322
-
apiVersion: kubectl.config.k8s.io/v1alpha1
341
+
apiVersion: kubectl.config.k8s.io/v1beta1
323
342
kind: Preference
324
343
325
344
aliases:
@@ -369,7 +388,11 @@ Based on reviewers feedback describe what additional tests need to be added prio
369
388
implementing this enhancement to ensure the enhancements have also solid foundations.
370
389
-->
371
390
372
-
Aside from standard testing we will also be skew testing.
391
+
We're planning to expand tests adding:
392
+
- config API fuzzy tests
393
+
- cross API config loading
394
+
- input validation and correctness
395
+
- simple e2e using kuberc
373
396
374
397
##### Unit tests
375
398
@@ -395,10 +418,9 @@ extending the production code to implement this enhancement.
0 commit comments