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
| 1.31 | GA | **Feature implementation becomes part of normal code. `if featureGate enabled { // implement feature }` code may be removed at this step** |
338
347
339
-
All feature gating and tracking must remain in code through 1.30for N-3
340
-
compatibility version support.
348
+
All feature gating and tracking must remain in code through 1.30for
349
+
compatibility version support (alpha: `1.n`..`1.{n-1}`, beta: `1.n`..`1.{n-3}`).
341
350
342
351
For a Beta feature that is removed, e.g.:
343
352
@@ -364,13 +373,13 @@ The steps to remove the Beta feature would be:
and instead always pass in N-1 of the compatibility version introduced by this
497
506
enhancement as the CEL compatibility version.
498
507
508
+
### Validation ratcheting
509
+
510
+
Any validationg ratcheting needs to account for compatibility version.
511
+
512
+
For example, if a validation is widened (tolerates values not previously
513
+
allowed) at minor version N, then if the compatibility version is set to minor
514
+
version N-1, widened values must be allowed for already stored field values, but
515
+
not allowed for writes that change the field value.
516
+
517
+
The above "CEL Environment Compatibility Versioning" is actually a special
518
+
case of this requirement.
519
+
499
520
### StorageVersion Compatibility Versioning
500
521
501
522
StorageVersions specify what version an apiserver uses to write resources to etcd
@@ -734,9 +755,11 @@ API Storage version changed|v1beta1|v1|Resources stored as v1beta1|Resources sto
734
755
new CEL function|-|function in StoredExpressions CEL environment|CEL function does not exist|Resources already containing CEL expression can be evaluated
735
756
introduced CEL function|function in StoredExpressions CEL environment|function in NewExpressions CEL environment|Resources already containing CEL expression can be evaluated|CEL expression can be written to resources and can be evaluted from storage
736
757
737
-
- The other edge cases we will test are:
758
+
- Other cases we will test are:
738
759
- `--compatibility-version=<N-2>` - fails flag validation, binary exits
739
760
- `--compatibility-version=<N+1>` - fails flag validation, binary exits
761
+
- we only allow data into new API fields once they existed in the previous release, this needs to account for compatibility version
762
+
- we only relax validation after the previous release tolerates it, this needs to account for compatibility version
0 commit comments