File tree Expand file tree Collapse file tree 1 file changed +9
-5
lines changed
keps/sig-architecture/4330-compatibility-versions Expand file tree Collapse file tree 1 file changed +9
-5
lines changed Original file line number Diff line number Diff line change @@ -475,11 +475,15 @@ StorageVersions specify what version an apiserver uses to write resources to etc
475
475
for each API group. The StorageVersion changes across releases as API groups
476
476
graduate through stability levels.
477
477
478
- The StorageVersions of an API group will need to be modified to track which
479
- StorageVersions was used for each Kubernetes version that the compatibility
480
- version can be set to. This will then be used when the apiserver to write
481
- resources with the same StorageVersions used by the Kubernetes version the
482
- compatibility version is set to.
478
+ During upgrades and downgrades, the storage version is particularly important.
479
+ To enable upgrades and rollbacks, the version selected for storage in etcd in
480
+ version N must be (en/de)codable for k8s versions N-1 through N+1.
481
+
482
+ Thus, to determine the storage version to use at compatibility version N, we
483
+ will find the set of all supported GVRs for each of N-1, N, and N+1 and intersect
484
+ them to find a list of all GVRs supported by every binary version in the window.
485
+ The storage version of each group-resource is the newest
486
+ (using kube-aware version sorting) version found in that list for that group-resource.
483
487
484
488
### API Compatibility Versioning
485
489
You can’t perform that action at this time.
0 commit comments