Skip to content

Commit df4f2c8

Browse files
committed
Update beta target milestone, sync to match content with latest templates
1 parent 125e35b commit df4f2c8

File tree

4 files changed

+176
-46
lines changed

4 files changed

+176
-46
lines changed

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

Lines changed: 84 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
## Table of Contents
44

55
<!-- toc -->
6+
- [Release Signoff Checklist](#release-signoff-checklist)
67
- [Summary](#summary)
78
- [Motivation](#motivation)
89
- [Goals](#goals)
@@ -13,6 +14,8 @@
1314
- [Container Resize Policy](#container-resize-policy)
1415
- [Resize Status](#resize-status)
1516
- [CRI Changes](#cri-changes)
17+
- [Risks and Mitigations](#risks-and-mitigations)
18+
- [Design Details](#design-details)
1619
- [Kubelet and API Server Interaction](#kubelet-and-api-server-interaction)
1720
- [Kubelet Restart Tolerance](#kubelet-restart-tolerance)
1821
- [Scheduler and API Server Interaction](#scheduler-and-api-server-interaction)
@@ -22,7 +25,6 @@
2225
- [Notes](#notes)
2326
- [Affected Components](#affected-components)
2427
- [Future Enhancements](#future-enhancements)
25-
- [Risks and Mitigations](#risks-and-mitigations)
2628
- [Test Plan](#test-plan)
2729
- [Unit Tests](#unit-tests)
2830
- [Pod Resize E2E Tests](#pod-resize-e2e-tests)
@@ -43,8 +45,51 @@
4345
- [Scalability](#scalability)
4446
- [Troubleshooting](#troubleshooting)
4547
- [Implementation History](#implementation-history)
48+
- [Drawbacks](#drawbacks)
49+
- [Alternatives](#alternatives)
4650
<!-- /toc -->
4751

52+
## Release Signoff Checklist
53+
54+
<!--
55+
**ACTION REQUIRED:** In order to merge code into a release, there must be an
56+
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
57+
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
58+
of the targeted release**.
59+
60+
For enhancements that make changes to code or processes/procedures in core
61+
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
62+
Signoff checklist to be completed.
63+
64+
Check these off as they are completed for the Release Team to track. These
65+
checklist items _must_ be updated for the enhancement to be released.
66+
-->
67+
68+
Items marked with (R) are required *prior to targeting to a milestone / release*.
69+
70+
- [ ] (R) Enhancement issue in release milestone, which links to KEP dir in [kubernetes/enhancements] (not the initial KEP PR)
71+
- [ ] (R) KEP approvers have approved the KEP status as `implementable`
72+
- [ ] (R) Design details are appropriately documented
73+
- [ ] (R) Test plan is in place, giving consideration to SIG Architecture and SIG Testing input (including test refactors)
74+
- [ ] e2e Tests for all Beta API Operations (endpoints)
75+
- [ ] (R) Ensure GA e2e tests for meet requirements for [Conformance Tests](https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/conformance-tests.md)
76+
- [ ] (R) Minimum Two Week Window for GA e2e tests to prove flake free
77+
- [ ] (R) Graduation criteria is in place
78+
- [ ] (R) [all GA Endpoints](https://github.com/kubernetes/community/pull/1806) must be hit by [Conformance Tests](https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/conformance-tests.md)
79+
- [ ] (R) Production readiness review completed
80+
- [ ] (R) Production readiness review approved
81+
- [ ] "Implementation History" section is up-to-date for milestone
82+
- [ ] User-facing documentation has been created in [kubernetes/website], for publication to [kubernetes.io]
83+
- [ ] Supporting documentation—e.g., additional design documents, links to mailing list discussions/SIG meetings, relevant PRs/issues, release notes
84+
85+
<!--
86+
**Note:** This checklist is iterative and should be reviewed and updated every time this enhancement is being considered for a milestone.
87+
-->
88+
89+
[kubernetes.io]: https://kubernetes.io/
90+
[kubernetes/enhancements]: https://git.k8s.io/enhancements
91+
[kubernetes/kubernetes]: https://git.k8s.io/kubernetes
92+
[kubernetes/website]: https://git.k8s.io/website
4893

4994
## Summary
5095

@@ -209,6 +254,25 @@ CPU and memory limit configurations from runtime.
209254
These CRI changes are a separate effort that does not affect the design
210255
proposed in this KEP.
211256

257+
### Risks and Mitigations
258+
259+
1. Backward compatibility: When Pod.Spec.Containers[i].Resources becomes
260+
representative of desired state, and Pod's true resource allocations are
261+
tracked in Pod.Status.ContainerStatuses[i].ResourcesAllocated, applications
262+
that query PodSpec and rely on Resources in PodSpec to determine resource
263+
allocations will see values that may not represent actual allocations. As a
264+
mitigation, this change needs to be documented and highlighted in the
265+
release notes, and in top-level Kubernetes documents.
266+
1. Resizing memory lower: Lowering cgroup memory limits may not work as pages
267+
could be in use, and approaches such as setting limit near current usage may
268+
be required. This issue needs further investigation.
269+
1. Older client versions: Previous versions of clients that are unaware of the
270+
new ResourcesAllocated and ResizePolicy fields would set them to nil. To
271+
keep compatibility, PodResourceAllocation admission controller mutates such
272+
an update by copying non-nil values from the old Pod to current Pod.
273+
274+
## Design Details
275+
212276
### Kubelet and API Server Interaction
213277

214278
When a new Pod is created, Scheduler is responsible for selecting a suitable
@@ -489,23 +553,6 @@ Other components:
489553
1. Allow resource limits to be updated (VPA feature).
490554
1. Handle pod-scoped resources (https://github.com/kubernetes/enhancements/pull/1592)
491555

492-
### Risks and Mitigations
493-
494-
1. Backward compatibility: When Pod.Spec.Containers[i].Resources becomes
495-
representative of desired state, and Pod's true resource allocations are
496-
tracked in Pod.Status.ContainerStatuses[i].ResourcesAllocated, applications
497-
that query PodSpec and rely on Resources in PodSpec to determine resource
498-
allocations will see values that may not represent actual allocations. As a
499-
mitigation, this change needs to be documented and highlighted in the
500-
release notes, and in top-level Kubernetes documents.
501-
1. Resizing memory lower: Lowering cgroup memory limits may not work as pages
502-
could be in use, and approaches such as setting limit near current usage may
503-
be required. This issue needs further investigation.
504-
1. Older client versions: Previous versions of clients that are unaware of the
505-
new ResourcesAllocated and ResizePolicy fields would set them to nil. To
506-
keep compatibility, PodResourceAllocation admission controller mutates such
507-
an update by copying non-nil values from the old Pod to current Pod.
508-
509556
### Test Plan
510557

511558
#### Unit Tests
@@ -875,3 +922,22 @@ _This section must be completed when targeting beta graduation to a release._
875922
- 2020-11-06 - Updated with feedback from reviews
876923
- 2020-12-09 - Add "Deferred"
877924
- 2021-02-05 - Final consensus on resourcesAllocated[] and resize[]
925+
926+
## Drawbacks
927+
928+
<!--
929+
Why should this KEP _not_ be implemented?
930+
-->
931+
932+
There are no drawbacks that we are aware of.
933+
934+
## Alternatives
935+
936+
<!--
937+
What other approaches did you consider, and why did you rule them out? These do
938+
not need to be as detailed as the proposal, but should include enough
939+
information to express the idea and why it was not acceptable.
940+
-->
941+
942+
We considered having scheduler approve the resize. We also considered PodSpec as
943+
the location to checkpoint allocated resources.

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

Lines changed: 13 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@ owning-sig: sig-node
99
participating-sigs:
1010
- sig-autoscaling
1111
- sig-scheduling
12+
status: implementable
13+
creation-date: 2018-11-06
1214
reviewers:
1315
- "@bsalamat"
1416
- "@dashpole"
@@ -21,28 +23,25 @@ approvers:
2123
- "@derekwaynecarr"
2224
- "@ahg-g"
2325
- "@mwielgus"
24-
editor: TBD
25-
creation-date: 2018-11-06
26-
last-updated: 2021-02-05
27-
status: implementable
26+
prr-approvers:
27+
- "@ehashman"
2828
see-also:
2929
- "/keps/sig-node/2273-kubelet-container-resources-cri-api-changes"
3030
replaces:
31-
superseded-by:
3231

33-
# PRR
34-
prr-approvers:
35-
- "@ehashman"
32+
stage: "alpha"
33+
34+
latest-milestone: "v1.22"
35+
36+
milestone:
37+
alpha: "v1.22"
38+
beta: "v1.24"
39+
stable: "v1.26"
40+
3641
feature-gates:
3742
- name: InPlacePodVerticalScaling
3843
components:
3944
- kube-apiserver
4045
- kube-scheduler
4146
- kubelet
4247
disable-supported: true
43-
milestone:
44-
alpha: "v1.22"
45-
beta: "v1.23"
46-
stable: "v1.25"
47-
latest-milestone: "v1.22"
48-
stage: "alpha"

keps/sig-node/2273-kubelet-container-resources-cri-api-changes/README.md

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,14 @@
33
## Table of Contents
44

55
<!-- toc -->
6+
- [Release Signoff Checklist](#release-signoff-checklist)
67
- [Summary](#summary)
78
- [Motivation](#motivation)
89
- [Goals](#goals)
910
- [Non-Goals](#non-goals)
1011
- [Proposal](#proposal)
12+
- [API Changes](#api-changes)
13+
- [Risks and Mitigations](#risks-and-mitigations)
1114
- [Design Details](#design-details)
1215
- [Expected Behavior of CRI Runtime](#expected-behavior-of-cri-runtime)
1316
- [Test Plan](#test-plan)
@@ -25,8 +28,52 @@
2528
- [Scalability](#scalability)
2629
- [Troubleshooting](#troubleshooting)
2730
- [Implementation History](#implementation-history)
31+
- [Drawbacks](#drawbacks)
32+
- [Alternatives](#alternatives)
2833
<!-- /toc -->
2934

35+
## Release Signoff Checklist
36+
37+
<!--
38+
**ACTION REQUIRED:** In order to merge code into a release, there must be an
39+
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
40+
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
41+
of the targeted release**.
42+
43+
For enhancements that make changes to code or processes/procedures in core
44+
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
45+
Signoff checklist to be completed.
46+
47+
Check these off as they are completed for the Release Team to track. These
48+
checklist items _must_ be updated for the enhancement to be released.
49+
-->
50+
51+
Items marked with (R) are required *prior to targeting to a milestone / release*.
52+
53+
- [ ] (R) Enhancement issue in release milestone, which links to KEP dir in [kubernetes/enhancements] (not the initial KEP PR)
54+
- [ ] (R) KEP approvers have approved the KEP status as `implementable`
55+
- [ ] (R) Design details are appropriately documented
56+
- [ ] (R) Test plan is in place, giving consideration to SIG Architecture and SIG Testing input (including test refactors)
57+
- [ ] e2e Tests for all Beta API Operations (endpoints)
58+
- [ ] (R) Ensure GA e2e tests for meet requirements for [Conformance Tests](https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/conformance-tests.md)
59+
- [ ] (R) Minimum Two Week Window for GA e2e tests to prove flake free
60+
- [ ] (R) Graduation criteria is in place
61+
- [ ] (R) [all GA Endpoints](https://github.com/kubernetes/community/pull/1806) must be hit by [Conformance Tests](https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/conformance-tests.md)
62+
- [ ] (R) Production readiness review completed
63+
- [ ] (R) Production readiness review approved
64+
- [ ] "Implementation History" section is up-to-date for milestone
65+
- [ ] User-facing documentation has been created in [kubernetes/website], for publication to [kubernetes.io]
66+
- [ ] Supporting documentation—e.g., additional design documents, links to mailing list discussions/SIG meetings, relevant PRs/issues, release notes
67+
68+
<!--
69+
**Note:** This checklist is iterative and should be reviewed and updated every time this enhancement is being considered for a milestone.
70+
-->
71+
72+
[kubernetes.io]: https://kubernetes.io/
73+
[kubernetes/enhancements]: https://git.k8s.io/enhancements
74+
[kubernetes/kubernetes]: https://git.k8s.io/kubernetes
75+
[kubernetes/website]: https://git.k8s.io/website
76+
3077
## Summary
3178

3279
This proposal aims to improve the Container Runtime Interface (CRI) APIs for
@@ -79,6 +126,8 @@ Another change in this proposal is to extend ContainerStatus CRI API such that
79126
Kubelet can query and discover the CPU and memory resources that are presently
80127
applied to a Container.
81128

129+
### API Changes
130+
82131
To accomplish aforementioned goals:
83132

84133
* A new protobuf message object named *ContainerResources* that encapsulates
@@ -148,6 +197,10 @@ message UpdateContainerResourcesRequest {
148197

149198
* Kubelet code is modified to leverage these changes.
150199

200+
### Risks and Mitigations
201+
202+
There are no risks that we are aware of as this KEP will be implemented simultaneously with In-place update KEP.
203+
151204
## Design Details
152205

153206
Below diagram is an overview of Kubelet using UpdateContainerResources and
@@ -454,3 +507,16 @@ _This section must be completed when targeting beta graduation to a release._
454507
- 2019-10-25 - Initial KEP draft created
455508
- 2020-01-14 - Test plan and graduation criteria added
456509

510+
## Drawbacks
511+
512+
<!--
513+
Why should this KEP _not_ be implemented?
514+
-->
515+
516+
## Alternatives
517+
518+
<!--
519+
What other approaches did you consider, and why did you rule them out? These do
520+
not need to be as detailed as the proposal, but should include enough
521+
information to express the idea and why it was not acceptable.
522+
-->

keps/sig-node/2273-kubelet-container-resources-cri-api-changes/kep.yaml

Lines changed: 13 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -5,33 +5,32 @@ authors:
55
- "@quinton-hoole"
66
owning-sig: sig-node
77
participating-sigs:
8+
status: implementable
9+
creation-date: 2019-10-25
810
reviewers:
911
- "@Random-Liu"
1012
- "@yujuhong"
1113
- "@PatrickLang"
1214
approvers:
1315
- "@dchen1107"
1416
- "@derekwaynecarr"
15-
editor: TBD
16-
creation-date: 2019-10-25
17-
last-updated: 2020-01-14
18-
status: implementable
17+
prr-approvers:
18+
- "@ehashman"
1919
see-also:
2020
- "/keps/sig-node/1287-in-place-update-pod-resources"
2121
replaces:
22-
superseded-by:
2322

24-
# PRR
25-
prr-approvers:
26-
- "@ehashman"
23+
stage: "alpha"
24+
25+
latest-milestone: "v1.22"
26+
27+
milestone:
28+
alpha: "v1.22"
29+
beta: "v1.24"
30+
stable: "v1.26"
31+
2732
feature-gates:
2833
- name: InPlacePodVerticalScaling
2934
components:
3035
- kubelet
3136
disable-supported: true
32-
milestone:
33-
alpha: "v1.22"
34-
beta: "v1.23"
35-
stable: "v1.25"
36-
stage: "alpha"
37-
latest-milestone: "v1.22"

0 commit comments

Comments
 (0)