Skip to content

Commit b05f77e

Browse files
committed
Response to questions/concerns from PRR review
1 parent 80f44e0 commit b05f77e

File tree

4 files changed

+54
-23
lines changed

4 files changed

+54
-23
lines changed

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

Lines changed: 24 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -670,22 +670,27 @@ _This section must be completed when targeting alpha to a release._
670670
* **How can this feature be enabled / disabled in a live cluster?**
671671
- [x] Feature gate (also fill in values in `kep.yaml`)
672672
- Feature gate name: InPlacePodVerticalScaling
673-
- Components depending on the feature gate: kubelet
673+
- Components depending on the feature gate: kubelet, kube-apiserver, kube-scheduler
674674
- [ ] Other
675675
- Describe the mechanism:
676676
- Will enabling / disabling the feature require downtime of the control
677-
plane?
677+
plane? No.
678678
- Will enabling / disabling the feature require downtime or reprovisioning
679-
of a node? (Do not assume `Dynamic Kubelet Config` feature is enabled).
679+
of a node? (Do not assume `Dynamic Kubelet Config` feature is enabled). No.
680680

681681
* **Does enabling the feature change any default behavior?** No
682682

683683
* **Can the feature be disabled once it has been enabled (i.e. can we roll back
684684
the enablement)?** Yes
685685

686686
* **What happens if we reenable the feature if it was previously rolled back?**
687+
- API will once again permit modification of Resources for 'cpu' and 'memory'.
688+
- Actual resources applied will be reflected in in Pod's ContainerStatuses.
687689

688-
* **Are there any tests for feature enablement/disablement?** Unit tests
690+
* **Are there any tests for feature enablement/disablement?**
691+
Unit tests and E2E tests.
692+
- Unit tests verify that feature does not introduce any regression.
693+
- E2E tests run against a local cluster verify that feature works as expected.
689694

690695
### Rollout, Upgrade and Rollback Planning
691696

@@ -766,41 +771,50 @@ _For beta, this section is required: reviewers must answer these questions._
766771
_For GA, this section is required: approvers should be able to confirm the
767772
previous answers based on experience in the field._
768773

769-
* **Will enabling / using this feature result in any new API calls?**
774+
* **Will enabling / using this feature result in any new API calls?** Yes
770775
Describe them, providing:
771776
- API call type (e.g. PATCH pods)
777+
- One new PATCH PodStatus API call in response to Pod resize request.
778+
- No additional overhead unless Pod resize is invoked.
772779
- estimated throughput
773780
- originating component(s) (e.g. Kubelet, Feature-X-controller)
781+
- Kubelet
774782
focusing mostly on:
775783
- components listing and/or watching resources they didn't before
776784
- API calls that may be triggered by changes of some Kubernetes resources
777785
(e.g. update of object X triggers new updates of object Y)
778786
- periodic API calls to reconcile state (e.g. periodic fetching state,
779787
heartbeats, leader election, etc.)
780788

781-
* **Will enabling / using this feature result in introducing new API types?**
789+
* **Will enabling / using this feature result in introducing new API types?** No
782790
Describe them, providing:
783791
- API type
784792
- Supported number of objects per cluster
785793
- Supported number of objects per namespace (for namespace-scoped objects)
786794

787795
* **Will enabling / using this feature result in any new calls to the cloud
788-
provider?**
796+
provider?** No
789797

790798
* **Will enabling / using this feature result in increasing size or count of
791-
the existing API objects?**
799+
the existing API objects?** Yes
792800
Describe them, providing:
793801
- API type(s):
794802
- Estimated increase in size: (e.g., new annotation of size 32B)
795803
- Estimated amount of new objects: (e.g., new Object X for every existing Pod)
804+
- type Container has new field ResizePolicy, a list that adds upto 50 bytes.
805+
- type PodStatus has a new field, a list that adds upto 32 bytes.
806+
- type ContainerStatus has new field of type v1.ResourceList that mirrors
807+
Container.Resources.Requests in size.
808+
- type ContainerStatus has new field of type v1.ResourceRequirements that
809+
mirrors Container.Resources in size.
796810

797811
* **Will enabling / using this feature result in increasing time taken by any
798-
operations covered by [existing SLIs/SLOs]?**
812+
operations covered by [existing SLIs/SLOs]?** No
799813
Think about adding additional work or introducing new steps in between
800814
(e.g. need to do X to start a container), etc. Please describe the details.
801815

802816
* **Will enabling / using this feature result in non-negligible increase of
803-
resource usage (CPU, RAM, disk, IO, ...) in any components?**
817+
resource usage (CPU, RAM, disk, IO, ...) in any components?** No
804818
Things to keep in mind include: additional in-memory state, additional
805819
non-trivial computations, excessive access to disks (including increased log
806820
volume), significant amount of data sent and/or received over network, etc.

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,6 @@ disable-supported: true
4343
milestone:
4444
alpha: "v1.22"
4545
beta: "v1.23"
46-
stable: "v1.24"
47-
latest-milestone: "0.0"
46+
stable: "v1.25"
47+
latest-milestone: "v1.22"
4848
stage: "alpha"

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

Lines changed: 26 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -262,18 +262,23 @@ _This section must be completed when targeting alpha to a release._
262262
- [ ] Other
263263
- Describe the mechanism:
264264
- Will enabling / disabling the feature require downtime of the control
265-
plane?
265+
plane? No.
266266
- Will enabling / disabling the feature require downtime or reprovisioning
267-
of a node? (Do not assume `Dynamic Kubelet Config` feature is enabled).
267+
of a node? (Do not assume `Dynamic Kubelet Config` feature is enabled). No.
268268

269269
* **Does enabling the feature change any default behavior?** No
270270

271271
* **Can the feature be disabled once it has been enabled (i.e. can we roll back
272272
the enablement)?** Yes
273273

274274
* **What happens if we reenable the feature if it was previously rolled back?**
275+
- API will once again permit modification of Resources for 'cpu' and 'memory'.
276+
- Actual resources applied will be reflected in in Pod's ContainerStatuses.
275277

276-
* **Are there any tests for feature enablement/disablement?** Unit tests
278+
* **Are there any tests for feature enablement/disablement?**
279+
Unit tests and E2E tests.
280+
- Unit tests verify that feature does not introduce any regression.
281+
- E2E tests run against a local cluster verify that feature works as expected.
277282

278283
### Rollout, Upgrade and Rollback Planning
279284

@@ -354,41 +359,53 @@ _For beta, this section is required: reviewers must answer these questions._
354359
_For GA, this section is required: approvers should be able to confirm the
355360
previous answers based on experience in the field._
356361

357-
* **Will enabling / using this feature result in any new API calls?**
362+
* **Will enabling / using this feature result in any new API calls?** Yes
358363
Describe them, providing:
359364
- API call type (e.g. PATCH pods)
365+
- One UpdateContainerResources CRI API call per Pod resize request.
366+
- No additional overhead unless Pod resize is invoked.
360367
- estimated throughput
361368
- originating component(s) (e.g. Kubelet, Feature-X-controller)
369+
- Kubelet
362370
focusing mostly on:
363371
- components listing and/or watching resources they didn't before
364372
- API calls that may be triggered by changes of some Kubernetes resources
365373
(e.g. update of object X triggers new updates of object Y)
366374
- periodic API calls to reconcile state (e.g. periodic fetching state,
367375
heartbeats, leader election, etc.)
368376

369-
* **Will enabling / using this feature result in introducing new API types?**
377+
* **Will enabling / using this feature result in introducing new API types?** No
370378
Describe them, providing:
371379
- API type
372380
- Supported number of objects per cluster
373381
- Supported number of objects per namespace (for namespace-scoped objects)
374382

375383
* **Will enabling / using this feature result in any new calls to the cloud
376-
provider?**
384+
provider?** No
377385

378386
* **Will enabling / using this feature result in increasing size or count of
379-
the existing API objects?**
387+
the existing API objects?** Yes
380388
Describe them, providing:
381389
- API type(s):
382390
- Estimated increase in size: (e.g., new annotation of size 32B)
383391
- Estimated amount of new objects: (e.g., new Object X for every existing Pod)
392+
- message runtimeapi.UpdateContainerResourcesRequest in UpdateContainerResources
393+
CRI API adds a new field of type ContainerResources that is a oneof, which has
394+
a size of max(LinuxContainerResources, WindowsContainerResources).
395+
- message runtimeapi.ContainerStatus returned by ContainerStatus CRI API adds a
396+
new field of type ContainerResources that is a oneof, which has a
397+
size of max(LinuxContainerResources, WindowsContainerResources).
384398

385399
* **Will enabling / using this feature result in increasing time taken by any
386-
operations covered by [existing SLIs/SLOs]?**
400+
operations covered by [existing SLIs/SLOs]?** Yes
387401
Think about adding additional work or introducing new steps in between
388402
(e.g. need to do X to start a container), etc. Please describe the details.
403+
- ContainerStatus CRI API populates ContainerResources. Data is already
404+
being queried in dockershim during InspectContainer call, so the impact
405+
is negligible.
389406

390407
* **Will enabling / using this feature result in non-negligible increase of
391-
resource usage (CPU, RAM, disk, IO, ...) in any components?**
408+
resource usage (CPU, RAM, disk, IO, ...) in any components?** No
392409
Things to keep in mind include: additional in-memory state, additional
393410
non-trivial computations, excessive access to disks (including increased log
394411
volume), significant amount of data sent and/or received over network, etc.

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,6 @@ disable-supported: true
3232
milestone:
3333
alpha: "v1.22"
3434
beta: "v1.23"
35-
stable: "v1.24"
35+
stable: "v1.25"
3636
stage: "alpha"
37-
latest-milestone: "0.0"
37+
latest-milestone: "v1.22"

0 commit comments

Comments
 (0)