|
| 1 | +# GREP-NNNN: Short descriptive title |
| 2 | + |
| 3 | +<!-- toc --> |
| 4 | +- [Summary](#summary) |
| 5 | +- [Motivation](#motivation) |
| 6 | + - [Goals](#goals) |
| 7 | + - [Non-Goals](#non-goals) |
| 8 | +- [Proposal](#proposal) |
| 9 | + - [User Stories (<em>Optional</em>)](#user-stories-optional) |
| 10 | + - [Story 1 (<em>Optional</em>)](#story-1-optional) |
| 11 | + - [Story 2 (<em>Optional</em>)](#story-2-optional) |
| 12 | + - [Limitations/Risks & Mitigations](#limitationsrisks--mitigations) |
| 13 | +- [Design Details](#design-details) |
| 14 | + - [Monitoring](#monitoring) |
| 15 | + - [Dependencies (<em>Optional</em>)](#dependencies-optional) |
| 16 | + - [Test Plan](#test-plan) |
| 17 | + - [Graduation Criteria](#graduation-criteria) |
| 18 | +- [Implementation History (<em>Optional</em>)](#implementation-history-optional) |
| 19 | +- [Alternatives (<em>Optional</em>)](#alternatives-optional) |
| 20 | +- [Appendix (<em>Optional</em>)](#appendix-optional) |
| 21 | +<!-- /toc --> |
| 22 | + |
| 23 | +<!-- |
| 24 | +Include a table of contents as it helps to navigate easily in the document. |
| 25 | +
|
| 26 | +Ensure the TOC is wrapped with |
| 27 | + <code><!-- toc --><!-- /toc --></code> |
| 28 | +tags, and then generate by invoking the make target `update-toc`. |
| 29 | +
|
| 30 | +--> |
| 31 | + |
| 32 | +## Summary |
| 33 | + |
| 34 | +<!-- |
| 35 | +This section should contain user-focused documentation such as release notes or a development roadmap. It should also have a summary of functional increment that is being introduced as part of this GREP. A good summary should address a wider audience and should ideally be a single paragraph. |
| 36 | +--> |
| 37 | + |
| 38 | +## Motivation |
| 39 | + |
| 40 | +<!-- |
| 41 | +This section explicitly lists the motivation which consists of goals and the non-goals of this GREP. Use this section to describe why the change introduced in this GREP is important and what benefits it brings to the users. |
| 42 | +--> |
| 43 | + |
| 44 | +### Goals |
| 45 | + |
| 46 | +<!-- |
| 47 | +Lists specific goals of this GREP. What is it trying to achieve. |
| 48 | +--> |
| 49 | + |
| 50 | +### Non-Goals |
| 51 | + |
| 52 | +<!-- |
| 53 | +Lists what all is out of scope of this GREP. Listing non-goals helps to clearly define the scope within which the discussions should happen. |
| 54 | +--> |
| 55 | + |
| 56 | +## Proposal |
| 57 | + |
| 58 | +<!-- |
| 59 | +Contains the specifics of the proposal. Sufficient details should be provided to help reviewers clearly understand the proposal. It should not include API design, low level design and implementation details which should be mentioned under 'Design Details' section instead. |
| 60 | +--> |
| 61 | + |
| 62 | +### User Stories (*Optional*) |
| 63 | + |
| 64 | +<!-- |
| 65 | +This section provides detailed use cases descibing how changes introduced in this GREP are going to be used. The intent is to carve out real-world scenarios which serve as additional motivation providing clarity/context for the changes proposed. |
| 66 | +--> |
| 67 | + |
| 68 | +#### Story 1 (*Optional*) |
| 69 | + |
| 70 | +#### Story 2 (*Optional*) |
| 71 | + |
| 72 | +### Limitations/Risks & Mitigations |
| 73 | + |
| 74 | +<!-- |
| 75 | +What are the current set of limitations or risks of this proposal? Think broadly by considering the impact of the changes proposed on kubernetes ecosystem. Optionally mention ways to mitigate these. |
| 76 | +--> |
| 77 | + |
| 78 | +## Design Details |
| 79 | + |
| 80 | +<!-- |
| 81 | +This section may include API specifications (GO API/YAML) and certain flow control diagrams that will help reviewers to know how the proposal will be implemented. |
| 82 | +--> |
| 83 | + |
| 84 | +### Monitoring |
| 85 | + |
| 86 | +<!-- |
| 87 | +This section contains details of events, metrics, status conditions and other status fields that will aid in determining health of the feature, or help measure any service level objectives that might be optionally defined. |
| 88 | +--> |
| 89 | + |
| 90 | +### Dependencies (*Optional*) |
| 91 | + |
| 92 | +<!-- |
| 93 | +Are there any dependencies for this feature to work? If yes then those should be clearly listed with optional links on how to ensure that the dependencies are setup. |
| 94 | +--> |
| 95 | + |
| 96 | +### Test Plan |
| 97 | + |
| 98 | +<!-- |
| 99 | +For the functionality an epic (issue) should be created. Along with a sub-issue for the GREP, there should be a dedicated issue created for integration and e2e tests. This issue should have details of all scenarios that needs to be tested. Provide a link to issue(s) in this section. |
| 100 | +--> |
| 101 | + |
| 102 | +### Graduation Criteria |
| 103 | + |
| 104 | +<!-- |
| 105 | +In this section graduation milestones should be defined. The progression of the overall feature can be evaluated w.r.t API maturity, staged sub-feature implementation or some other criteria. |
| 106 | +
|
| 107 | +In general we try to use the same stages (alpha, beta, GA), regardless of how the |
| 108 | +functionality is accessed. Refer to these for more details:" |
| 109 | +
|
| 110 | +* [Feature Gates](https://git.k8s.io/community/contributors/devel/sig-architecture/feature-gates.md) |
| 111 | +* [Maturity levels](https://git.k8s.io/community/contributors/devel/sig-architecture/api_changes.md#alpha-beta-and-stable-versions) |
| 112 | +* [Deprecation Policy](https://kubernetes.io/docs/reference/using-api/deprecation-policy/ ) |
| 113 | +
|
| 114 | +**Note:** Generally we also wait at least two releases between beta and |
| 115 | +GA/stable, because there's no opportunity for user feedback, or even bug reports, |
| 116 | +in back-to-back releases. |
| 117 | +--> |
| 118 | + |
| 119 | +## Implementation History (*Optional*) |
| 120 | + |
| 121 | +<!-- |
| 122 | +Major milestones in the lifecycle of a GREP should be tracked in this section. |
| 123 | +Major milestones might include: |
| 124 | +
|
| 125 | +- The date proposal was accepted and merged. |
| 126 | +- The date implementation started. |
| 127 | +- The date of Alpha release for the feature. |
| 128 | +- The date the feature graduated to beta/GA |
| 129 | +
|
| 130 | +--> |
| 131 | + |
| 132 | +## Alternatives (*Optional*) |
| 133 | + |
| 134 | +<!-- |
| 135 | +What are the alternative approaches considered and reasons to rule those out. This section should have sufficient details (not too much) to express the alternative idea and why it was not accepted. |
| 136 | +--> |
| 137 | + |
| 138 | +## Appendix (*Optional*) |
| 139 | + |
| 140 | +<!-- |
| 141 | +Use this section to put any prerequisite reading links or helpful information/data that supplements the proposal, thus providing additional context to the reviewer. |
| 142 | +--> |
| 143 | + |
| 144 | +> NOTE: This GREP template has been inspired by [KEP Template](https://github.com/kubernetes/enhancements/blob/f90055d254c356b2c038a1bdf4610bf4acd8d7be/keps/NNNN-kep-template/README.md). |
| 145 | +
|
0 commit comments