|
| 1 | +<!-- |
| 2 | +How to use this template: |
| 3 | +
|
| 4 | +- Make a copy of this file in the docs/ directory |
| 5 | +- Set the name of the file to contain the next logical number and the name of the feature |
| 6 | +- Fill out at least the Status, Motivation and Goals/Non-Goals fields. |
| 7 | +- Open a PR to eksctl |
| 8 | +- Merge early and iterate |
| 9 | +
|
| 10 | +For more tips see the Contributing docs: https://github.com/weaveworks/eksctl/blob/master/CONTRIBUTING.md#proposals |
| 11 | +--> |
| 12 | + |
| 13 | +# Short, descriptive title |
| 14 | + |
| 15 | +<!-- |
| 16 | +Keep the title short, simple, and descriptive. A good |
| 17 | +title can help communicate what the proposal is and should be considered as part of |
| 18 | +any review. |
| 19 | +--> |
| 20 | + |
| 21 | +## Authors |
| 22 | + |
| 23 | +<!-- |
| 24 | +Who is responsible for this proposal? Who can answer questions? |
| 25 | +--> |
| 26 | + |
| 27 | +## Status |
| 28 | + |
| 29 | +<!-- |
| 30 | +Can be just one word to help anyone understand where the proposal is in the process. |
| 31 | +--> |
| 32 | + |
| 33 | + |
| 34 | +<!-- |
| 35 | +The headings here are just starting points, add more as makes sense in what you |
| 36 | +are proposing. |
| 37 | +--> |
| 38 | +## Table of Contents |
| 39 | +<!-- toc --> |
| 40 | +- [Summary](#summary) |
| 41 | +- [Motivation](#motivation) |
| 42 | + - [Goals](#goals) |
| 43 | + - [Non-Goals](#non-goals) |
| 44 | + - [Linked Docs](#linked-docs) |
| 45 | +- [Proposal](#proposal) |
| 46 | + - [User Stories (Optional)](#user-stories-optional) |
| 47 | + - [Story 1](#story-1) |
| 48 | + - [Story 2](#story-2) |
| 49 | + - [Notes/Constraints/Caveats (Optional)](#notesconstraintscaveats-optional) |
| 50 | + - [Risks and Mitigations](#risks-and-mitigations) |
| 51 | +- [Design Details](#design-details) |
| 52 | + - [Test Plan](#test-plan) |
| 53 | + - [Graduation Criteria (Optional)](#graduation-criteria-optional) |
| 54 | + - [Migration Strategy (Optional)](#migration-strategy-optional) |
| 55 | +- [Drawbacks (Optional)](#drawbacks-optional) |
| 56 | +- [Alternatives](#alternatives) |
| 57 | +- [Open Questions / Known Unknowns](#open-questions--known-unknowns) |
| 58 | +- [Implementation Stages (Optional)](#implementation-stages-optional) |
| 59 | +- [Success Metrics (Optional)](#success-metrics-optional) |
| 60 | +<!-- /toc --> |
| 61 | + |
| 62 | +<!-- |
| 63 | +Ensure the TOC is wrapped with |
| 64 | + <!-- toc --> and <!-- /toc --> |
| 65 | +tags, and then generate with mdtoc https://github.com/kubernetes-sigs/mdtoc. |
| 66 | +--> |
| 67 | + |
| 68 | +## Summary |
| 69 | + |
| 70 | +<!-- |
| 71 | +A good summary is at least a paragraph in length and should be written with a wide audience |
| 72 | +in mind. |
| 73 | +
|
| 74 | +This TLDR should encompass the entire document, and serve as both future documentation |
| 75 | +and as a quick reference for people coming by to learn the proposal's purpose |
| 76 | +without reading the entire thing. |
| 77 | +--> |
| 78 | + |
| 79 | +## Motivation |
| 80 | + |
| 81 | +<!-- |
| 82 | +This section is for explicitly listing the motivation, goals and non-goals of |
| 83 | +this proposal. Describe why the change is important, how it fits into the project's |
| 84 | +goals and the benefits to users. |
| 85 | +
|
| 86 | +It is helpful to frame this to answer the question: "What is the problem this proposal |
| 87 | +is trying to solve?" |
| 88 | +--> |
| 89 | + |
| 90 | +### Goals |
| 91 | + |
| 92 | +<!-- |
| 93 | +List the specific goals of the proposal. What is it trying to achieve? How will we |
| 94 | +know that this has succeeded? |
| 95 | +--> |
| 96 | + |
| 97 | +### Non-Goals |
| 98 | + |
| 99 | +<!-- |
| 100 | +What is out of scope for this proposal? Listing non-goals helps to focus discussion |
| 101 | +and make progress. |
| 102 | +
|
| 103 | +It is important to remember that non-goals are still equally important things |
| 104 | +which will be dealt with one day but are not things which need to be dealt with immediately |
| 105 | +within the scope of this work. This helps make sure everyone is crystal clear on the outcomes. |
| 106 | +--> |
| 107 | + |
| 108 | +### Linked Docs |
| 109 | + |
| 110 | +<!-- |
| 111 | +Provide links to previous discussions/threads, motivation issues or any other document |
| 112 | +with context. It is really helpful to provide a "source of truth" for the work |
| 113 | +so that people aren't searching all over the place for lost context. |
| 114 | +--> |
| 115 | + |
| 116 | +## Proposal |
| 117 | + |
| 118 | +<!-- |
| 119 | +This is where we get down to the specifics of what the proposal actually is: |
| 120 | +outlining your solution to the problem described in the Motivation section. |
| 121 | +This should have enough detail that reviewers can understand exactly what |
| 122 | +you're proposing, but should not include things like API designs or |
| 123 | +implementation. The "Design Details" section below is for the real |
| 124 | +nitty-gritty. |
| 125 | +--> |
| 126 | + |
| 127 | +### User Stories (Optional) |
| 128 | + |
| 129 | +<!-- |
| 130 | +Detail the things that people will be able to do if this proposal is implemented. |
| 131 | +Include as much detail as possible so that people can understand the "how" of |
| 132 | +the system. The goal here is to make this feel real for users without getting |
| 133 | +bogged down. Including CLI/config etc examples is a good was to illustrate this. |
| 134 | +--> |
| 135 | + |
| 136 | +#### Story 1 |
| 137 | + |
| 138 | +#### Story 2 |
| 139 | + |
| 140 | +### Notes/Constraints/Caveats (Optional) |
| 141 | + |
| 142 | +<!-- |
| 143 | +What are the caveats to the proposal? |
| 144 | +What are some important details that didn't come across above? |
| 145 | +Go in to as much detail as necessary here. |
| 146 | +This might be a good place to talk about core concepts and how they relate. |
| 147 | +--> |
| 148 | + |
| 149 | +### Risks and Mitigations |
| 150 | + |
| 151 | +<!-- |
| 152 | +What are the risks of this proposal, and how do we mitigate? |
| 153 | +What could get in the way of this solution being implemented the way we want? |
| 154 | +(This is technical stuff: do not count natural disasters or pandemics.) |
| 155 | +Think broadly. For example, consider how this will impact or be impacted by other |
| 156 | +things within the project as well as other components/APIs it interacts with. |
| 157 | +--> |
| 158 | + |
| 159 | +## Design Details |
| 160 | + |
| 161 | +<!-- |
| 162 | +This section should contain enough information that the specifics of your |
| 163 | +change are understandable. This may include API specs (though not always |
| 164 | +required) or even code snippets. If there's any ambiguity about HOW your |
| 165 | +proposal will be implemented, this is the place to discuss them. |
| 166 | +--> |
| 167 | + |
| 168 | +### Test Plan |
| 169 | + |
| 170 | +<!-- |
| 171 | +This will almost always say "Everything covered by unit tests, main uses cases |
| 172 | +covered by integration tests", but it is good to be very clear on goals. |
| 173 | +--> |
| 174 | + |
| 175 | +### Graduation Criteria (Optional) |
| 176 | + |
| 177 | +<!-- |
| 178 | +List criteria which would allow progression from one maturity level to another. |
| 179 | +eg. What needs to have been accomplished/demonstrated to move from Alpha to Beta. |
| 180 | +
|
| 181 | +If applicable, what is the milestone marker which will allow deprecation of the |
| 182 | +replaced capability? |
| 183 | +--> |
| 184 | + |
| 185 | +### Migration Strategy (Optional) |
| 186 | + |
| 187 | +<!-- |
| 188 | +How will this new implementation play with existing features? |
| 189 | +How can we mitigate issues? |
| 190 | +--> |
| 191 | + |
| 192 | +## Drawbacks (Optional) |
| 193 | + |
| 194 | +<!-- |
| 195 | +Why should the proposal NOT be implemented? |
| 196 | +This is not to say we won't do it, but to acknowledge the "cons" of the argument. |
| 197 | +Aka: devil's advocate. |
| 198 | +--> |
| 199 | + |
| 200 | +## Alternatives |
| 201 | + |
| 202 | +<!-- |
| 203 | +What other approaches did you consider, and why did you rule them out? These do |
| 204 | +not need to be as detailed as the proposal (pros and cons are fine), |
| 205 | +but should include enough information to express the idea and why it was not acceptable |
| 206 | +as well as illustrate why the final solution was selected. |
| 207 | +--> |
| 208 | + |
| 209 | +## Open Questions / Known Unknowns |
| 210 | + |
| 211 | +<!-- |
| 212 | +List any questions for things you unsure about or to |
| 213 | +direct reviewers to particular areas where their expertise is needed. |
| 214 | +--> |
| 215 | + |
| 216 | +## Implementation Stages (Optional) |
| 217 | + |
| 218 | +<!-- |
| 219 | +This will usually be filled in when the work is broken down into Issues/tickets |
| 220 | +and work can begin. |
| 221 | +--> |
| 222 | + |
| 223 | +## Success Metrics (Optional) |
| 224 | + |
| 225 | +<!-- |
| 226 | +A little hard to do with a CLI tool, but it is always nice |
| 227 | +to plan how you will learn about the success of a feature in the wild. |
| 228 | +--> |
0 commit comments