Skip to content

Commit 5295acf

Browse files
committed
Update beta target to v1.29. Add version skew handling details
1 parent 21e3c88 commit 5295acf

File tree

2 files changed

+39
-3
lines changed

2 files changed

+39
-3
lines changed

keps/sig-node/1287-in-place-update-pod-resources/README.md

Lines changed: 38 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -889,7 +889,8 @@ version of the API and update to a matching kubelet and making node schedulable
889889
Downgrade involves doing the above in reverse.
890890

891891
### Version Skew Strategy
892-
Kubelet and the CRI runtime versions are expected to match so we don't have to worry about.
892+
CRI changes were merged in v1.25 in order to enable runtimes to implement support.
893+
- containerd added support for this feature in 1.6.9
893894

894895
Previous versions of clients that are unaware of the new ResizePolicy fields would set them
895896
to nil. API server mutates such updates by copying non-nil values from old Pod to the current
@@ -898,7 +899,42 @@ Pod.
898899
A previous version of kubelet interprets mutation to Pod Resources as a Container definition
899900
change and will restart the container with the new Resources. This could lead to Node resource
900901
over-subscription. In order to address this, the feature-gate will remain default false for
901-
atleast two versions after the initial release that carries it.
902+
atleast two versions after v1.27 alpha release. i.e: beta is planned for v1.29 and
903+
InPlacePodVeritcalScaling feature-gate will be true in versions v1.29+
904+
905+
Allowed [version skews](https://kubernetes.io/releases/version-skew-policy/) are handled as below:
906+
907+
| apiserver ver -> | v1.27 | v1.28 | v1.29 | v1.30 |
908+
|------------------|-------------|--------------|-------------|-------------|
909+
| kubelet v1.25 | N | X | X | X |
910+
| kubelet v1.26 | N | N | X | X |
911+
| kubelet v1.27 | N | N | A | X |
912+
| kubelet v1.28 | X | N | A | A |
913+
| kubelet v1.29 | X | X | A | N |
914+
| kubelet v1.30 | X | X | X | N |
915+
| scheduler v1.26 | N | X | X | X |
916+
| scheduler v1.27 | N | N | X | X |
917+
| scheduler v1.28 | X | N | B | X |
918+
| scheduler v1.29 | X | X | N | N |
919+
| scheduler v1.30 | X | X | X | N |
920+
| kubectl v1.26 | C | X | X | X |
921+
| kubectl v1.27 | N | N | X | X |
922+
| kubectl v1.28 | N | N | N | X |
923+
| kubectl v1.29 | X | N | N | N |
924+
| kubectl v1.30 | X | X | N | N |
925+
| kubectl v1.31 | X | X | X | N |
926+
927+
**X**: Not allowed
928+
929+
**N**: No special handling needed.
930+
931+
**A**: kubelet sets PodStatus.Resize=Infeasible if it sees PodStatus.Resize=Proposed
932+
when feature-gate is disabled on kubelet
933+
934+
**B**: Use max(ResourcesAllocated, Requests) if PodStatus.Resize != "" (empty)
935+
936+
**C**: dropDisabledPodFields/dropDisabledPodStatusFields function sets ResizePolicy,
937+
ResourcesAllocated, and ContainerStatus.Resources fields to nil.
902938

903939
## Production Readiness Review Questionnaire
904940

keps/sig-node/1287-in-place-update-pod-resources/kep.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ latest-milestone: "v1.27"
3636

3737
milestone:
3838
alpha: "v1.27"
39-
beta: "v1.28"
39+
beta: "v1.29"
4040
stable: "v1.30"
4141

4242
feature-gates:

0 commit comments

Comments
 (0)