Skip to content

Commit b04118c

Browse files
authored
Initial enhancement proposal template (#10539)
1 parent fd05516 commit b04118c

File tree

1 file changed

+153
-0
lines changed

1 file changed

+153
-0
lines changed
Lines changed: 153 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,153 @@
1+
<!--
2+
**Note:** When your Enhancement Proposal (EP) is complete, all of these comment blocks should be removed.
3+
4+
This template is inspired by the Kubernetes Enhancement Proposal (KEP) template: https://github.com/kubernetes/enhancements/blob/master/keps/sig-architecture/0000-kep-process/README.md
5+
6+
To get started with this template:
7+
8+
- [ ] **Create an issue in kgateway-dev/kgateway**
9+
- [ ] **Make a copy of this template.**
10+
`EP-[ID]: [Feature/Enhancement Name]`, where `ID` is the issue number (with no
11+
leading-zero padding) assigned to your enhancement above.
12+
- [ ] **Fill out this file as best you can.**
13+
At minimum, you should fill in the "Summary" and "Motivation" sections.
14+
- [ ] **Create a PR for this EP.**
15+
Assign it to maintainers with relevant context.
16+
- [ ] **Merge early and iterate.**
17+
Avoid getting hung up on specific details and instead aim to get the goals of
18+
the EP clarified and merged quickly. The best way to do this is to just
19+
start with the high-level sections and fill out details incrementally in
20+
subsequent PRs.
21+
22+
Just because a EP is merged does not mean it is complete or approved. Any EP
23+
marked as `provisional` is a working document and subject to change. You can
24+
denote sections that are under active debate as follows:
25+
26+
```
27+
<<[UNRESOLVED optional short context or usernames ]>>
28+
Stuff that is being argued.
29+
<<[/UNRESOLVED]>>
30+
```
31+
32+
When editing EPS, aim for tightly-scoped, single-topic PRs to keep discussions
33+
focused. If you disagree with what is already in a document, open a new PR
34+
with suggested changes.
35+
36+
One EP corresponds to one "feature" or "enhancement" for its whole lifecycle. Once a feature has become
37+
"implemented", major changes should get new EPs.
38+
-->
39+
# EP-[ID]: [Feature/Enhancement Name]
40+
41+
<!--
42+
This is the title of your EP. Keep it short, simple, and descriptive. A good
43+
title can help communicate what the EP is and should be considered as part of
44+
any review.
45+
-->
46+
47+
* Issue: [#ID](URL to GitHub issue)
48+
49+
<!--
50+
A table of contents is helpful for quickly jumping to sections of a EP and for
51+
highlighting any additional information provided beyond the standard EP
52+
template.
53+
54+
Ensure the TOC is wrapped with
55+
<code>&lt;!-- toc --&rt;&lt;!-- /toc --&rt;</code>
56+
tags, and then generate with `hack/update-toc.sh`.
57+
-->
58+
59+
## Background
60+
61+
<!--
62+
Provide a brief overview of the feature/enhancement, including relevant background information, origin, and sponsors.
63+
Highlight the primary purpose and how it fits within the broader ecosystem.
64+
65+
Include Motivation, concise overview of goals, challenges, and trade-offs.
66+
67+
-->
68+
69+
## Motivation
70+
71+
<!--
72+
This section is for explicitly listing the motivation, goals, and non-goals of
73+
this EP. Describe why the change is important and the benefits to users. The
74+
motivation section can optionally provide links to [experience reports] to
75+
demonstrate the interest in a EP within the wider Kubernetes community.
76+
77+
[experience reports]: https://github.com/golang/go/wiki/ExperienceReports
78+
-->
79+
80+
### Goals
81+
82+
<!--
83+
84+
List the specific goals of the EP. What is it trying to achieve? How will we
85+
know that this has succeeded?
86+
87+
Include specific, actionable outcomes. Ensure that the goals focus on the scope of
88+
the proposed feature.
89+
-->
90+
91+
92+
### Non-Goals
93+
94+
<!--
95+
What is out of scope for this EP? Listing non-goals helps to focus discussion
96+
and make progress.
97+
-->
98+
99+
## Implementation Details
100+
101+
<!--
102+
This section should contain enough information that the specifics of your
103+
change are understandable. This may include API specs (though not always
104+
required) or even code snippets. If there's any ambiguity about HOW your
105+
proposal will be implemented, this is the place to discuss them.
106+
107+
108+
### Configuration
109+
Specify changes to any configuration APIs, CRDs, or user-facing options to enable/disable
110+
the feature. Include references to relevant files or configurations that need updates.
111+
112+
### Plugin
113+
Describe how the feature will be added as a plugin (if applicable).
114+
Include references to existing plugin frameworks or structures.
115+
Highlight the plugin's responsibilities and integration points.
116+
117+
### Controllers
118+
Outline the responsibilities of new or updated controllers.
119+
Specify conditions for their operation and integration with existing resources.
120+
Mention required RBAC updates or new permissions.
121+
122+
### Deployer
123+
Detail deployment-specific updates, e.g., Helm chart modifications, custom deployer changes, etc.
124+
Include any prerequisites or dependencies for deployment.
125+
126+
### Translator and Proxy Syncer
127+
Specify updates to translators, syncers, or other intermediary components.
128+
Highlight how these components interact with the feature's resources or backend.
129+
130+
### Reporting
131+
Describe changes to status reporting or monitoring frameworks.
132+
Include any caveats or limitations in initial reporting.
133+
-->
134+
135+
### Test Plan
136+
137+
<!--
138+
Define the testing strategy for the feature.
139+
Include unit, integration, and end-to-end (e2e) tests.
140+
Specify any additional frameworks or tools required for testing.
141+
-->
142+
143+
## Alternatives
144+
145+
<!--
146+
Highlight potential challenges or trade-offs.
147+
-->
148+
149+
## Open Questions
150+
151+
<!--
152+
Include any unresolved questions or areas requiring feedback.
153+
-->

0 commit comments

Comments
 (0)