You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: keps/sig-architecture/4330-compatibility-versions/README.md
+11-2Lines changed: 11 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -366,13 +366,22 @@ compatibility version support.
366
366
#### Feature gating changes
367
367
368
368
In order to preserve the behavior of in-development features across multiple releases,
369
-
feature implementation history should also be preserved in the code base.
369
+
feature implementation history should also be preserved in the code base instead of in place modifications.
370
370
371
371
Only sigificant and observable changes in feature capabilities should be across
372
372
releases. We do not want to impose a unreasonable burdon on feature authors.
373
373
Bugs, performance optimizations should not be gated by version.
374
374
375
-
Naively, the feature implementations can be gated by version number.
375
+
Here are some examples of feature changes that should be or do not need not be preserved:
376
+
**Feature**|**Changes That Should Be Preserved**|**Changes That Do Not Need To Be Preserved**
377
+
-----|-----|-----
378
+
APIPriorityAndFairness | [add v1beta3 for Priority And Fairness](https://github.com/kubernetes/kubernetes/pull/112306) | [More seat metrics for APF](https://github.com/kubernetes/kubernetes/pull/105873)
379
+
ValidatingAdmissionPolicy | | [Drop AvailableResources from controller context](https://github.com/kubernetes/kubernetes/pull/117977), [Encapsulate KCM controllers with their metadata](https://github.com/kubernetes/kubernetes/pull/120371)
380
+
APIServerTracing | | [Revert "Graduate API Server tracing to beta"](https://github.com/kubernetes/kubernetes/pull/113803)
381
+
MemoryManager | | [Don't reuse memory of a restartable init container](https://github.com/kubernetes/kubernetes/pull/120715)
382
+
NodeSwap | if done after promoting to beta: [Add full cgroup v2 swap support and remove cgroup v1 support](https://github.com/kubernetes/kubernetes/pull/118764) | [only configure swap if swap is enabled](https://github.com/kubernetes/kubernetes/pull/120784)
383
+
384
+
To preserve the behavior, naively the feature implementations can be gated by version number.
376
385
For example, if `FeatureA` is partially implemented in 1.28 and additional functionality
377
386
is added in 1.29, the feature developer is expected to gate the functionality by version.
0 commit comments