Skip to content

[FG:InPlacePodVerticalScaling] Tracking TODO items to address pre-beta, at beta, GA, and GA+1 #109547

@vinaykul

Description

@vinaykul

What would you like to be added?

This enhancement tracks various TODO items from alpha to GA for the In-Place Pod Vertical Scaling feature.
To find pending TODO items in the k/k repo, do:

git grep TODO | grep InPlacePodVerticalScaling

TODOs not tracked in code:

  • Add and expose a helper function to get a pod's resource requirements and allocations for use by metrics, kubectl describe, etc

Why is this needed?

These were TODO items found during review of PR #102884 and it was agreed they should not block alpha. Most need to be handled before Beta, and a few need to be addressed at GA/GA+1.

### Tasks
- [ ] pkg/apis/core/validation/validation.go:5071 - Drop this var once InPlacePodVerticalScaling goes GA and featuregate is gone.
- [ ] pkg/kubelet/container/helpers.go:128 - Remove this in GA+1 and make HashContainerWithoutResources to become Hash.
- [ ] pkg/kubelet/container/runtime.go:301 - Remove this in GA+1 and make HashWithoutResources to become Hash.
- [ ] pkg/kubelet/kubelet.go:1962 - Investigate doing this in HandlePodUpdates + periodic SyncLoop scan
- [ ] pkg/kubelet/kubelet.go:2588 - Can we recover from checkpoint failure in some way? Investigate
- [ ] pkg/kubelet/kubelet.go:2847 - Can we recover from checkpoint update failure in some way? Investigate
- [ ] pkg/kubelet/kubelet.go:2855 - Can we recover from resize status checkpoint failure in some way? Investigate
- [ ] pkg/kubelet/kubelet_pods.go:2107 - Update this to include extended resources in addition to CPU, memory, ephemeral storage. Add test case for extended resources.
- [ ] pkg/kubelet/kuberuntime/helpers_linux.go:63 - Address issue that sets min req/limit to 2m/10m before beta ( See: https://github.com/kubernetes/kubernetes/pull/102884#discussion_r662552642 )
- [ ] pkg/kubelet/kuberuntime/kuberuntime_container_linux_test.go:867 - Add unit tests for cgroup v1 & v2
- [ ] pkg/kubelet/kuberuntime/kuberuntime_manager.go:662 - Figure out best way to get enforceMemoryQoS value (parameter kubelet should know which containers it is managing #4 below) in platform-agnostic way
- [ ] pkg/scheduler/internal/queue/scheduling_queue.go:1074 - Fix this to determine when a pod is truly resized down (might need oldPod if we cannot determine from Status alone)
- [ ] test/e2e/node/pod_resize.go:85 - Can we optimize this?
- [ ] test/e2e/node/pod_resize.go:334 - Is there a better way to determine this?
- [ ] test/e2e/node/pod_resize.go:500 - Remove this check once base-OS updates to containerd>=1.6.9
- [ ] pkg/kubelet/cm/cgroup_manager_linux.go:645 - Support memory request in getCgroupMemoryConfig
- [ ] pkg/kubelet/cm/cgroup_manager_linux.go:731 - Support memory request in setCgroupMemoryConfig

Metadata

Metadata

Assignees

Labels

kind/featureCategorizes issue or PR as related to a new feature.sig/nodeCategorizes an issue or PR as relevant to SIG Node.triage/acceptedIndicates an issue or PR is ready to be actively worked on.

Type

No type

Projects

Status

Done

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions