Skip to content

Commit d07ad09

Browse files
authored
Merge pull request kubernetes#2293 from deads2k/describe-mechanics
describe mechanics of handling beta removal to avoid developer disruption
2 parents 70d927d + 81d60ca commit d07ad09

File tree

2 files changed

+27
-1
lines changed

2 files changed

+27
-1
lines changed

keps/sig-architecture/1635-prevent-permabeta/README.md

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
- [sig-node](#sig-node)
1717
- [sig-scheduling](#sig-scheduling)
1818
- [Drawbacks](#drawbacks)
19+
- [Upgrade / Downgrade Strategy](#upgrade--downgrade-strategy)
1920
<!-- /toc -->
2021

2122
## Release Signoff Checklist
@@ -141,3 +142,23 @@ This is the same as the standard for new beta APIs introduced in 1.19.
141142
1. Consumers of beta APIs will be made aware of the status of the APIs and be given clear dates in documentation about
142143
when they will have to update. If the maintainers of these beta APIs do not graduate their API, a new beta version will
143144
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.

keps/sig-architecture/1635-prevent-permabeta/kep.yaml

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,12 @@ participating-sigs:
1212
- sig-network
1313
- sig-node
1414
- sig-scheduling
15-
status: implementable
15+
status: implemented
16+
17+
latest-milestone: "v1.19"
18+
milestone:
19+
stable: "v1.19"
20+
1621
creation-date: 2019-10-01
1722
reviewers:
1823
- "@bgrant0607"

0 commit comments

Comments
 (0)