Skip to content

Commit 79c88b8

Browse files
authored
Merge pull request kubernetes#2027 from soltysh/new_format_staging
Move kubectl-staging to the new KEP format
2 parents 5f6d4f5 + 730328d commit 79c88b8

File tree

2 files changed

+166
-25
lines changed

2 files changed

+166
-25
lines changed

keps/sig-cli/kubectl-staging.md renamed to keps/sig-cli/1020-kubectl-staging/README.md

Lines changed: 126 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,7 @@
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
232

243
<!-- toc -->
4+
- [Release Signoff Checklist](#release-signoff-checklist)
255
- [Summary](#summary)
266
- [Motivation](#motivation)
277
- [Goals](#goals)
@@ -30,13 +10,35 @@ see-also:
3010
- [Adding the staging repository in kubernetes/kubernetes:](#adding-the-staging-repository-in-kuberneteskubernetes)
3111
- [Modify and Set-up the existing receiving kubernetes/kubectl repository](#modify-and-set-up-the-existing-receiving-kuberneteskubectl-repository)
3212
- [Move <code>pkg/kubectl</code> Code](#move--code)
33-
- [Timeframe](#timeframe)
13+
- [Time frame](#time-frame)
3414
- [Risks and Mitigations](#risks-and-mitigations)
3515
- [Graduation Criteria](#graduation-criteria)
3616
- [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)
3724
- [Implementation History](#implementation-history)
3825
<!-- /toc -->
3926

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+
4042
## Summary
4143

4244
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
155157
`k8s.io/kubernetes/staging/src/k8s.io/kubectl` directory, and update all
156158
`k8s.io/kubernetes/pkg/kubectl` imports. This can be an incremental process.
157159

158-
### Timeframe
160+
### Time frame
159161

160162
There are three remaining Kubernetes core dependencies that have to be resolved
161163
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).
167169
## Risks and Mitigations
168170

169171
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
171173
include kubectl code. Before moving forward with this plan, we will identify and
172174
communicate to these projects.
173175

@@ -182,6 +184,105 @@ Except for kubectl developers, this change will be mostly transparent. There is
182184
no new functionality to test; testing will be accomplished through the current
183185
unit tests, integration tests, and end-to-end tests.
184186

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+
185286
## Implementation History
186287

187288
See [kubernetes/kubectl#80](https://github.com/kubernetes/kubectl/issues/80) as
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
title: Move Kubectl Code into Staging
2+
kep-number: 1020
3+
authors:
4+
- "@seans3"
5+
- "@soltysh"
6+
owning-sig: sig-cli
7+
participating-sigs:
8+
status: implementable
9+
creation-date: 2019-04-09
10+
reviewers:
11+
- "@pwittrock"
12+
- "@liggitt"
13+
approvers:
14+
- "@pwittrock"
15+
prr-approvers:
16+
- "@deads2k"
17+
see-also:
18+
replaces:
19+
20+
# The target maturity stage in the current dev cycle for this KEP.
21+
stage: stable
22+
23+
# The most recent milestone for which work toward delivery of this KEP has been
24+
# done. This can be the current (upcoming) milestone, if it is being actively
25+
# worked on.
26+
latest-milestone: "v1.20"
27+
28+
# The milestone at which this feature was, or is targeted to be, at each stage.
29+
milestone:
30+
alpha: "v1.15"
31+
beta: "v1.19"
32+
stable: "v1.20"
33+
34+
# The following PRR answers are required at alpha release
35+
# List the feature gate name and the components for which it must be enabled
36+
feature-gates:
37+
disable-supported: false
38+
39+
# The following PRR answers are required at beta release
40+
metrics:

0 commit comments

Comments
 (0)