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
@@ -39,12 +38,14 @@ To get started with this template:
39
38
Make sure that the problem space is something the SIG is interested in taking up.
40
39
KEPs should not be checked in without a sponsoring SIG.
41
40
1.**Make a copy of this template.**
42
-
Name it `YYYYMMDD-my-title.md`.
41
+
Copy this template into the owning SIG's directory (or KEP root directory, as appropriate) and name it `YYYYMMDD-my-title.md`, where `YYYYMMDD` is the date the KEP was first drafted.
43
42
1.**Fill out the "overview" sections.**
44
43
This includes the Summary and Motivation sections.
45
44
These should be easy if you've preflighted the idea of the KEP with the appropriate SIG.
46
45
1.**Create a PR.**
47
46
Assign it to folks in the SIG that are sponsoring this process.
47
+
1.**Create an issue in kubernetes/enhancements, if the enhancement will be targeting changes to kubernetes/kubernetes**
48
+
When filing an enhancement tracking issue, please ensure to complete all fields in the template.
48
49
1.**Merge early.**
49
50
Avoid getting hung up on specific details and instead aim to get the goal of the KEP merged quickly.
50
51
The best way to do this is to just start with the "Overview" sections and fill out details incrementally in follow on PRs.
@@ -63,44 +64,63 @@ See the KEP process for details on each of these items.
63
64
A table of contents is helpful for quickly jumping to sections of a KEP and for highlighting any additional information provided beyond the standard KEP template.
64
65
[Tools for generating][] a table of contents from markdown are available.
[Tools for generating]: https://github.com/ekalinin/github-markdown-toc
84
95
85
-
**ACTION REQUIRED (Seriously):** There must be an issue in [kubernetes/kubernetes](https://github.com/kubernetes/kubernetes/issues)
86
-
referencing this KEP and targeted a release milestone *before the [feature freeze](https://github.com/kubernetes/sig-release/tree/master/releases)
87
-
of the targeted release*.
96
+
## Release Signoff Checklist
88
97
89
-
## Release Sign off Checklist
98
+
**ACTION REQUIRED:** In order to merge code into a release, there must be an issue in [kubernetes/enhancements] referencing this KEP and targeting a release milestone **before [Enhancement Freeze](https://github.com/kubernetes/sig-release/tree/master/releases)
99
+
of the targeted release**.
90
100
91
-
Check these off as the are completed for the release team to track. These must be updated for the feature to be
92
-
released.
101
+
For enhancements that make changes to code or processes/procedures in core Kubernetes i.e., [kubernetes/kubernetes], we require the following Release Signoff checklist to be completed.
93
102
94
-
-[ ] Issue in release milestone linked to KEP (insert link here)
95
-
-[ ] Design
96
-
-[ ] Test Plan
97
-
-[ ] Graduation Plan
98
-
-[ ] Implemented
99
-
-[ ] Documented
103
+
Check these off as they are completed for the Release Team to track. These checklist items _must_ be updated for the enhancement to be released.
104
+
105
+
-[ ] kubernetes/enhancements issue in release milestone, which links to KEP (this should be a link to the KEP location in kubernetes/enhancements, not the initial KEP PR)
106
+
-[ ] KEP approvers have set the KEP status to `implementable`
107
+
-[ ] Design details are appropriately documented
108
+
-[ ] Test plan is in place, giving consideration to SIG Architecture and SIG Testing input
109
+
-[ ] Graduation criteria is in place
110
+
-[ ] "Implementation History" section is up-to-date for milestone
111
+
-[ ] User-facing documentation has been created in [kubernetes/website], for publication to [kubernetes.io]
112
+
-[ ] Supporting documentation e.g., additional design documents, links to mailing list discussions/SIG meetings, relevant PRs/issues, release notes
113
+
114
+
**Note:** This checklist is iterative and should be reviewed and updated every time this enhancement is being considered for a milestone.
The `Summary` section is incredibly important for producing high quality userfocused documentation such as release notes or a development road map.
123
+
The `Summary` section is incredibly important for producing high quality user-focused documentation such as release notes or a development roadmap.
104
124
It should be possible to collect this information before implementation begins in order to avoid requiring implementors to split their attention between writing release notes and implementing the feature itself.
105
125
KEP editors, SIG Docs, and SIG PM should help to ensure that the tone and content of the `Summary` section is useful for a wide audience.
106
126
@@ -121,7 +141,7 @@ How will we know that this has succeeded?
121
141
122
142
### Non-Goals
123
143
124
-
What is out of scope for his KEP?
144
+
What is out of scope for this KEP?
125
145
Listing non-goals helps to focus discussion and make progress.
126
146
127
147
## Proposal
@@ -154,71 +174,93 @@ For example, consider both security and how this will impact the larger kubernet
154
174
How will security be reviewed and by whom?
155
175
How will UX be reviewed and by whom?
156
176
157
-
Consider including folks that also work outside the sig or subproject.
177
+
Consider including folks that also work outside the SIG or subproject.
158
178
159
179
## Design Details
160
180
161
181
### Test Plan
162
182
163
183
**Note:***Section not required until targeted at a release.*
164
184
165
-
What is the test plan for the component? E2e, integration, unit testing. How will it be tested in isolation vs
166
-
with other components?
185
+
What is the test plan for this set of functionality e.g., e2e, integration, unit testing?
186
+
How will it be tested in isolation vs with other components?
167
187
168
188
No need to outline all of the test cases, just the general strategy.
189
+
Anything that would count as tricky in the implementation and anything particularly challenging to test should be called out.
190
+
191
+
All code is expected to have adequate tests (eventually with coverage expectations).
192
+
Please adhere to the [Kubernetes testing guidelines][testing-guidelines] when drafting this test plan.
Clearly define what graduation means by either linking to the [API doc definition](https://kubernetes.io/docs/concepts/overview/kubernetes-api/#api-versioning),
178
210
or by redefining what graduation means.
179
211
180
-
Example 1:
212
+
In general, we try to use the same stages (alpha, beta, GA), regardless how the functionality is accessed.
These are generalized examples to consider, in addition to the aforementioned [maturity levels][maturity-levels].
220
+
221
+
##### Alpha -> Beta Graduation
183
222
184
223
- Gather feedback from developers and surveys
185
224
- Complete features A, B, C
225
+
- Tests are in Testgrid and linked in KEP
186
226
187
-
Example 2:
188
-
189
-
Beta -> GA Graduation:
227
+
##### Beta -> GA Graduation
190
228
191
229
- N examples of real world usage
192
230
- N installs
193
-
- Complete features D, E, F
194
-
195
-
Example 3:
231
+
- More rigorous forms of testing e.g., downgrade tests and scalability tests
232
+
- Allowing time for feedback
196
233
197
-
kubectl flag Opt-in -> Opt-out
234
+
**Note:** Generally we also wait at least 2 releases between beta and GA/stable, since there's no opportunity for user feedback, or even bug reports, in back-to-back releases.
198
235
199
-
- 2 versions passed since introducing flag (to address version skew)
200
-
- Address feedback from opt-in usage provided on GitHub issues
236
+
##### Removing a deprecated flag
201
237
202
-
Gathering user feedback is crucial for building high quality experiences and SIGs have the important responsibility of setting milestones for stability and completeness.
203
-
Hopefully the content previously contained in [umbrella issues][] will be tracked in the `Graduation Criteria` section.
238
+
- Announce deprecation and support policy of the existing flag
239
+
- Two versions passed since introducing the functionality which deprecates the flag (to address version skew)
240
+
- Address feedback on usage/changed behavior, provided on GitHub issues
241
+
- Deprecate the flag
204
242
205
-
For non-optional features moving to GA, the graduation criteria must include [conformance tests](https://github.com/kubernetes/community/blob/master/contributors/devel/conformance-tests.md).
243
+
**For non-optional features moving to GA, the graduation criteria must include [conformance tests].**
**Note:***Section not required until targeted at a release.*
249
+
If applicable, how will the component be upgraded and downgraded? Make sure this is in the test plan.
212
250
213
-
If applicable, how will the component be upgraded and downgraded? Make sure this is in the test plan.
251
+
Consider the following in developing an upgrade/downgrade strategy for this enhancement:
252
+
- What changes (in invocations, configurations, API use, etc.) is an existing cluster required to make on upgrade in order to keep previous behavior?
253
+
- What changes (in invocations, configurations, API use, etc.) is an existing cluster required to make on upgrade in order to make use of the enhancement?
214
254
215
255
### Version Skew Strategy
216
256
217
-
**Note:***Section not required until targeted at a release.*
218
-
219
-
If applicable, how will the component handle version skew with other components? What are the guarantees? Make sure
257
+
If applicable, how will the component handle version skew with other components? What are the guarantees? Make sure
220
258
this is in the test plan.
221
259
260
+
Consider the following in developing a version skew strategy for this enhancement:
261
+
- Does this enhancement involve coordinating behavior in the control plane and in the kubelet? How does an n-2 kubelet without this feature available behave when this feature is used?
262
+
- Will any other components on the node change? For example, changes to CSI, CRI or CNI may require updating that component before the kubelet.
263
+
222
264
## Implementation History
223
265
224
266
Major milestones in the life cycle of a KEP should be tracked in `Implementation History`.
0 commit comments