1
- ---
2
- title : Move Kubectl Code into Staging
3
- authors :
4
- - " @seans3"
5
- owning-sig : sig-cli
6
- participating-sigs :
7
- reviewers :
8
- - " @pwittrock"
9
- - " @liggitt"
10
- approvers :
11
- - " @soltysh"
12
- editor : " @seans3"
13
- creation-date : 2019-04-09
14
- last-updated : 2019-04-09
15
- status : implementable
16
- see-also :
17
- ---
18
-
19
-
20
- # Move Kubectl Code into Staging
21
-
22
- ## Table of Contents
1
+ # KEP-1020: Move Kubectl Code into Staging
23
2
24
3
<!-- toc -->
4
+ - [ Release Signoff Checklist] ( #release-signoff-checklist )
25
5
- [ Summary] ( #summary )
26
6
- [ Motivation] ( #motivation )
27
7
- [ Goals] ( #goals )
@@ -30,13 +10,35 @@ see-also:
30
10
- [ Adding the staging repository in kubernetes/kubernetes:] ( #adding-the-staging-repository-in-kuberneteskubernetes )
31
11
- [ Modify and Set-up the existing receiving kubernetes/kubectl repository] ( #modify-and-set-up-the-existing-receiving-kuberneteskubectl-repository )
32
12
- [ Move <code >pkg/kubectl</code > Code] ( #move--code )
33
- - [ Timeframe ] ( #timeframe )
13
+ - [ Time frame ] ( #time-frame )
34
14
- [ Risks and Mitigations] ( #risks-and-mitigations )
35
15
- [ Graduation Criteria] ( #graduation-criteria )
36
16
- [ Testing] ( #testing )
17
+ - [ Production Readiness Review Questionnaire] ( #production-readiness-review-questionnaire )
18
+ - [ Feature Enablement and Rollback] ( #feature-enablement-and-rollback )
19
+ - [ Rollout, Upgrade and Rollback Planning] ( #rollout-upgrade-and-rollback-planning )
20
+ - [ Monitoring Requirements] ( #monitoring-requirements )
21
+ - [ Dependencies] ( #dependencies )
22
+ - [ Scalability] ( #scalability )
23
+ - [ Troubleshooting] ( #troubleshooting )
37
24
- [ Implementation History] ( #implementation-history )
38
25
<!-- /toc -->
39
26
27
+ ## Release Signoff Checklist
28
+
29
+ Items marked with (R) are required * prior to targeting to a milestone / release* .
30
+
31
+ - [x] (R) Enhancement issue in release milestone, which links to KEP dir in [ kubernetes/enhancements] (not the initial KEP PR)
32
+ - [X] (R) KEP approvers have approved the KEP status as ` implementable `
33
+ - [x] (R) Design details are appropriately documented
34
+ - [x] (R) Test plan is in place, giving consideration to SIG Architecture and SIG Testing input
35
+ - [x] (R) Graduation criteria is in place
36
+ - [x] (R) Production readiness review completed
37
+ - [X] Production readiness review approved
38
+ - [x] "Implementation History" section is up-to-date for milestone
39
+ - [x] User-facing documentation has been created in [ kubernetes/website] , for publication to [ kubernetes.io]
40
+ - [x] Supporting documentation—e.g., additional design documents, links to mailing list discussions/SIG meetings, relevant PRs/issues, release notes
41
+
40
42
## Summary
41
43
42
44
We propose to move the ` pkg/kubectl ` code base into staging. This effort would
@@ -155,7 +157,7 @@ Move `k8s.io/kubernetes/pkg/kubectl` to a location under the new
155
157
` k8s.io/kubernetes/staging/src/k8s.io/kubectl ` directory, and update all
156
158
` k8s.io/kubernetes/pkg/kubectl ` imports. This can be an incremental process.
157
159
158
- ### Timeframe
160
+ ### Time frame
159
161
160
162
There are three remaining Kubernetes core dependencies that have to be resolved
161
163
before all of ` pkg/kubectl ` can be moved to staging. While we work on those
@@ -167,7 +169,7 @@ would be moved over the next two releases (1.16 and 1.17).
167
169
## Risks and Mitigations
168
170
169
171
If a project vendors Kubernetes to import kubectl code, this will break them.
170
- On the bright side, afterwards, these importers will have a much cleaner path to
172
+ On the bright side, afterwards, these importers will have a much cleaner path to
171
173
include kubectl code. Before moving forward with this plan, we will identify and
172
174
communicate to these projects.
173
175
@@ -182,6 +184,105 @@ Except for kubectl developers, this change will be mostly transparent. There is
182
184
no new functionality to test; testing will be accomplished through the current
183
185
unit tests, integration tests, and end-to-end tests.
184
186
187
+ ## Production Readiness Review Questionnaire
188
+
189
+ ### Feature Enablement and Rollback
190
+
191
+
192
+ * ** How can this feature be enabled / disabled in a live cluster?**
193
+ Not aplicable.
194
+
195
+ * ** Does enabling the feature change any default behavior?**
196
+ Not applicable.
197
+
198
+ * ** Can the feature be disabled once it has been enabled (i.e. can we roll back
199
+ the enablement)?**
200
+ Not applicable.
201
+
202
+ * ** What happens if we reenable the feature if it was previously rolled back?**
203
+ Not applicable.
204
+
205
+ * ** Are there any tests for feature enablement/disablement?**
206
+ Not applicable.
207
+
208
+ ### Rollout, Upgrade and Rollback Planning
209
+
210
+ * ** How can a rollout fail? Can it impact already running workloads?**
211
+ Not applicable.
212
+
213
+ * ** What specific metrics should inform a rollback?**
214
+ Not applicable.
215
+
216
+ * ** Were upgrade and rollback tested? Was the upgrade->downgrade->upgrade path tested?**
217
+ Not applicable.
218
+
219
+ * ** Is the rollout accompanied by any deprecations and/or removals of features, APIs,
220
+ fields of API types, flags, etc.?**
221
+ Not applicable.
222
+
223
+ ### Monitoring Requirements
224
+
225
+ * ** How can an operator determine if the feature is in use by workloads?**
226
+ Not applicable.
227
+
228
+ * ** What are the SLIs (Service Level Indicators) an operator can use to determine
229
+ the health of the service?**
230
+ Not applicable.
231
+
232
+ * ** What are the reasonable SLOs (Service Level Objectives) for the above SLIs?**
233
+ Not applicable.
234
+
235
+ * ** Are there any missing metrics that would be useful to have to improve observability
236
+ of this feature?**
237
+ Not applicable.
238
+
239
+ ### Dependencies
240
+
241
+ * ** Does this feature depend on any specific services running in the cluster?**
242
+ Not applicable.
243
+
244
+ ### Scalability
245
+
246
+ * ** Will enabling / using this feature result in any new API calls?**
247
+ Not applicable.
248
+
249
+ * ** Will enabling / using this feature result in introducing new API types?**
250
+ Not applicable.
251
+
252
+ * ** Will enabling / using this feature result in any new calls to the cloud
253
+ provider?**
254
+ Not applicable.
255
+
256
+ * ** Will enabling / using this feature result in increasing size or count of
257
+ the existing API objects?**
258
+ Not applicable.
259
+
260
+ * ** Will enabling / using this feature result in increasing time taken by any
261
+ operations covered by [ existing SLIs/SLOs] ?**
262
+ Not applicable.
263
+
264
+ * ** Will enabling / using this feature result in non-negligible increase of
265
+ resource usage (CPU, RAM, disk, IO, ...) in any components?**
266
+ Not applicable.
267
+
268
+ ### Troubleshooting
269
+
270
+ The Troubleshooting section currently serves the ` Playbook ` role. We may consider
271
+ splitting it into a dedicated ` Playbook ` document (potentially with some monitoring
272
+ details). For now, we leave it here.
273
+
274
+ * ** How does this feature react if the API server and/or etcd is unavailable?**
275
+ Not applicable.
276
+
277
+ * ** What are other known failure modes?**
278
+ Not applicable.
279
+
280
+ * ** What steps should be taken if SLOs are not being met to determine the problem?**
281
+ Not applicable.
282
+
283
+ [ supported limits ] : https://git.k8s.io/community//sig-scalability/configs-and-limits/thresholds.md
284
+ [ existing SLIs/SLOs ] : https://git.k8s.io/community/sig-scalability/slos/slos.md#kubernetes-slisslos
285
+
185
286
## Implementation History
186
287
187
288
See [ kubernetes/kubectl #80 ] ( https://github.com/kubernetes/kubectl/issues/80 ) as
0 commit comments