|
16 | 16 | - [sig-node](#sig-node)
|
17 | 17 | - [sig-scheduling](#sig-scheduling)
|
18 | 18 | - [Drawbacks](#drawbacks)
|
| 19 | +- [Upgrade / Downgrade Strategy](#upgrade--downgrade-strategy) |
19 | 20 | <!-- /toc -->
|
20 | 21 |
|
21 | 22 | ## Release Signoff Checklist
|
@@ -141,3 +142,23 @@ This is the same as the standard for new beta APIs introduced in 1.19.
|
141 | 142 | 1. Consumers of beta APIs will be made aware of the status of the APIs and be given clear dates in documentation about
|
142 | 143 | when they will have to update. If the maintainers of these beta APIs do not graduate their API, a new beta version will
|
143 | 144 | need to exist within 18-ish months and early adopters will have to update their manifests to the new version.
|
| 145 | + |
| 146 | +## Upgrade / Downgrade Strategy |
| 147 | + |
| 148 | +To ensure adherence, the kube-apiserver automatically stops serving expired beta APIs. |
| 149 | +To avoid disruption to developers, there is a flow to handle removing these APIs. |
| 150 | + 1. For alpha levels of a release, the expired beta APIs are served. |
| 151 | + 2. The grace for an alpha level can be removed in a PR by setting |
| 152 | + (strictRemovedHandlingInAlpha=true)[https://github.com/kubernetes/kubernetes/blob/73d4c245ef870390b052a070134f7c4751744037/pkg/controlplane/deleted_kinds.go#L72] |
| 153 | + 3. The PR will highlight tests and code that need to be updated to react to the removed beta API. |
| 154 | + 4. Updates to handle beta removal can be made before the first beta.0 is tagged. |
| 155 | + 5. You know you're done when the PR from step 2 passes. |
| 156 | +Following these steps will prevent any disruption to the kube development flow when expired APIs are automatically excluded |
| 157 | +from the the kube-apiserver. |
| 158 | + |
| 159 | +While the code is automatically enforcing, individual sigs can ease their transition by planning for the removal aspect |
| 160 | +in their upgrade/downgrade strategies. |
| 161 | +For instance, they could stop using the beta APIs in the second releases after the introduction of GA APIs. |
| 162 | +This would maintain the +/-1 aspect of skew, while preventing a failure to communicate. |
| 163 | +In addition, a sig can create issues targeted at the release removing the beta API to address any generation and verify |
| 164 | +script behavior that needs to change. |
0 commit comments