Skip to content

Commit 62eabfa

Browse files
committed
break out empty KEP template
1 parent 82576b7 commit 62eabfa

File tree

2 files changed

+241
-225
lines changed

2 files changed

+241
-225
lines changed
Lines changed: 227 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,227 @@
1+
# KEP Template
2+
3+
## Metadata
4+
5+
## Table of Contents
6+
7+
- [KEP Template](#kep-template)
8+
- [Metadata](#metadata)
9+
- [Summary](#summary)
10+
- [Motivation](#motivation)
11+
- [Examples](#examples)
12+
- [Detailed Design](#detailed-design)
13+
- [How Do I Teach This?](#how-do-i-teach-this)
14+
- [KEP Template](#kep-template-1)
15+
- [Section: Metadata](#section-metadata)
16+
- [Section: Table of contents](#section-table-of-contents)
17+
- [Section: Summary](#section-summary)
18+
- [Section: Motivation](#section-motivation)
19+
- [Section: Examples](#section-examples)
20+
- [Section: How Do I Teach This?](#section-how-do-i-teach-this)
21+
- [Section: Detailed Design](#section-detailed-design)
22+
- [Section: Graduation Criteria](#section-graduation-criteria)
23+
- [Section: Implementation History](#section-implementation-history)
24+
- [Section: Drawbacks](#section-drawbacks)
25+
- [Section: Alternatives](#section-alternatives)
26+
- [Section: Unresolved Questions](#section-unresolved-questions)
27+
- [Section: Mentors](#section-mentors)
28+
- [Graduation Criteria](#graduation-criteria)
29+
- [Drawbacks](#drawbacks)
30+
- [Alternatives](#alternatives)
31+
- [Unresolved Questions](#unresolved-questions)
32+
- [Mentors](#mentors)
33+
34+
## Summary
35+
36+
The KEP template combines our design proposals with functionality currently
37+
provided by the [features repo][] within a flat file in source control. SIGs
38+
will adopt and fork the KEP template to support their specific needs.
39+
40+
[features repo]: https://github.com/kubernetes/features
41+
42+
## Motivation
43+
44+
A template for a unit of work described in a [proposal to standardize][] the
45+
Kubernetes development process is provided.
46+
47+
[proposal to standardize]: https://github.com/kubernetes/community/pull/967
48+
49+
## Examples
50+
51+
- [this KEP][]
52+
- [the KEP process][]
53+
54+
[this KEP]: https://github.com/calebamiles/community/blob/propose-kep-template/contributors/design-proposals/kep-template.md
55+
[the KEP process]: https://github.com/kubernetes/community/pull/967
56+
57+
## Detailed Design
58+
59+
## How Do I Teach This?
60+
61+
[The KEP process][] proposal will outline how a KEP is expected to progress
62+
from conception to implementation in one or more pull requests to a Kubernetes
63+
repository. This suggests that a KEP template should be used to track work
64+
which ultimately will result in change to source control; if you find success
65+
in modifying the KEP template please notify the [mentors](#mentors)!
66+
67+
### KEP Template
68+
69+
A [KEP template][] is provided; sections marked `[optional]` may be omitted by
70+
KEP authors. It is expected that most KEPs will begin their lives in discussion
71+
with the responsible SIGs, preferably in a mailing list so that the discussion
72+
is saved for future Kubernauts.
73+
74+
[KEP template]: https://github.com/calebamiles/community/blob/propose-kep-template/contributors/design-proposals/kep-template.md
75+
76+
### Section: Metadata
77+
78+
The `Metadata` section is intended to support the creation of tooling around the
79+
KEP process. The precise format for `Metadata` is described in the
80+
[metadata proposal][].
81+
82+
[metadata proposal]: https://docs.google.com/document/d/1ynmBMuDuT7yGzRscObB1KtgJj8ljYq0I5q4oshrJUCs/edit#
83+
84+
### Section: Table of contents
85+
86+
A table of contents is helpful for quickly jumping to sections of a KEP and for
87+
highlighting any addtional information provided beyond the standard KEP
88+
template. [Tools for generating][] a table of contents from markdown are
89+
available.
90+
91+
[Tools for generating]: https://github.com/ekalinin/github-markdown-toc
92+
93+
94+
### Section: Summary
95+
96+
The `Summary` section is incredibly important for producing high quality user
97+
focused documentation such as release notes or a development road map. It should
98+
be possible to collect this information before implementation begins in order
99+
to avoid requiring implementors to split their attention between writing
100+
release notes and implementing the feature itself. KEP editors, SIG Docs, and
101+
SIG PM should help to ensure that the tone and content of the `Summary` section
102+
is useful for a wide audience.
103+
104+
### Section: Motivation
105+
106+
The `Motivation` section should describe
107+
108+
- why we believe this change is important
109+
- what benefits are expected to be realized from the change
110+
- the high level design goals
111+
112+
The `Motivation` section is important for getting all responsible parties to
113+
understand the intention behind a change. The motivation section can optionally
114+
provide links to [experience reports][] to demonstrate the interest in a KEP
115+
within the wider Kubernetes community.
116+
117+
[experience reports]: https://github.com/golang/go/wiki/ExperienceReports
118+
119+
### Section: Examples
120+
121+
The `Examples` section should describe the intended user experience for an
122+
KEP.
123+
124+
### Section: How Do I Teach This?
125+
126+
### Section: Detailed Design
127+
128+
The `Detailed Design` section should contain enough information for someone
129+
besides the author to begin working on an implementation of the KEP. In a
130+
similar manner to the guidance on [implementing an RFC][] from the Rust
131+
community, not all KEPs must be implemented immediately. A high quality
132+
`Detailed Design` section will enable any interested contributor to begin
133+
implementation. Associating each KEP with one or more issues filed against
134+
Kubernetes repositories will allow interested community members to track
135+
implementation.
136+
137+
[implementing an RFC]: https://github.com/rust-lang/rfcs/blob/master/README.md#implementing-an-rfc
138+
139+
### Section: Graduation Criteria
140+
141+
Software development provides a unique opportunity for an iterative approach to
142+
value delivery. Gathering user feedback is crucial for building high quality
143+
experiences and SIGs have the important responsibility of setting milestones
144+
for stability and feature completeness. Hopefully the content previously
145+
contained in [umbrella issues][] will be tracked in the `Graduation Criteria`
146+
section.
147+
148+
[umbrella issues]: https://github.com/kubernetes/kubernetes/issues/42752
149+
150+
### Section: Implementation History
151+
152+
Major milestones in the life cycle of a KEP should be tracked in
153+
`Implementation History`. Major milestones might include
154+
155+
- the `Summary` and `Motivation` sections being merged signaling SIG acceptance
156+
- the `Detailed Design` section being merged signaling agreement on a proposed
157+
design
158+
- the date implementation started
159+
- the first Kubernetes release where an initial version of the KEP was available
160+
- the version of Kubneretes where the KEP graduated to general availability
161+
- when the KEP was retired or superseded
162+
163+
### Section: Drawbacks
164+
165+
Making trade offs is one of the fundamental tasks of software development. The
166+
`Drawbacks` section is to record what explicit choices have been made in the
167+
design for a KEP.
168+
169+
### Section: Alternatives
170+
171+
Similar to the `Drawbacks` section the `Alternatives` section is used to
172+
highlight and record other possible approaches to delivering the value proposed
173+
by a KEP.
174+
175+
### Section: Unresolved Questions
176+
177+
The `Unresolved Questions` section is used to parking lot issues not ready to be
178+
addressed before implementation begins.
179+
180+
### Section: Mentors
181+
182+
Mentors who can help a community member implement a KEP which follows its
183+
`Detailed Design` are crucial to scaling the Kubernetes project. Potential
184+
mentors can list their contact information using their preferred contact
185+
information in the `Mentors` section.
186+
187+
## Graduation Criteria
188+
189+
The first revision of the KEP template will be considered stable once
190+
191+
- SIGs adopt the KEP process and template or fork the template
192+
- the KEP process has been used for at least two Kubernetes releases
193+
194+
## Drawbacks
195+
196+
- having many possible sections in a KEP may feel too much like the waterfall
197+
approach to software development
198+
199+
## Alternatives
200+
201+
The KEP template is similar to the API proposal [design template][] but is
202+
slightly more general given that it targets the subset of information likely
203+
required for any significant change. Additionally
204+
205+
- The `Overview subsequent versions` has been replaced with the
206+
`Graduation Criteria` section of a KEP. It is intended that graduation
207+
criteria are added incrementally as a KEP is implemented and stabilized
208+
- The `Motivation` and `Use Cases` sections have been collapsed within
209+
the `Motivation` section of a KEP. It is expected that experience reports
210+
will be the primary description of use cases
211+
- `Requirements` is replaced by `Detailed Design` within a KEP
212+
213+
[design template]: https://github.com/pwittrock/community/blob/design/contributors/design-proposals/api-proposal-design-template.md
214+
215+
## Unresolved Questions
216+
217+
- How precisely merging portions of a KEP relate to the states of a KEP
218+
- Formal mechanism for adopting the KEP process and template
219+
- Automation
220+
221+
## Mentors
222+
223+
- caleb miles
224+
- github: [calebamiles](https://github.com/calebamiles/)
225+
- slack: [calebamiles](https://coreos.slack.com/team/caleb.miles)
226+
227+
- pronoun: "he"

0 commit comments

Comments
 (0)