From ecb1f49627168af7838a137cd83e9939f3b7ebd3 Mon Sep 17 00:00:00 2001 From: ndixita Date: Thu, 19 Mar 2026 06:34:10 +0000 Subject: [PATCH] Ensure when pod-level memory is modified, skip cgroup writes, but ensure actuated pod-level resources are updated --- pkg/kubelet/kuberuntime/kuberuntime_manager.go | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/pkg/kubelet/kuberuntime/kuberuntime_manager.go b/pkg/kubelet/kuberuntime/kuberuntime_manager.go index a20c46fb5df..f723040c418 100644 --- a/pkg/kubelet/kuberuntime/kuberuntime_manager.go +++ b/pkg/kubelet/kuberuntime/kuberuntime_manager.go @@ -925,7 +925,6 @@ func (m *kubeGenericRuntimeManager) doPodResizeAction(ctx context.Context, pod * } case v1.ResourceMemory: if !setLimitValue { - // Memory requests aren't written to cgroups. return nil } resizedResources.Memory = podResources.Memory @@ -951,11 +950,6 @@ func (m *kubeGenericRuntimeManager) doPodResizeAction(ctx context.Context, pod * // Update our tracking of the current state. currentPodResources = mergedPodResources - if utilfeature.DefaultFeatureGate.Enabled(features.InPlacePodLevelResourcesVerticalScaling) { - if err = updateActuatedPodLevelResources(rName); err != nil { - logger.Error(err, "Failed to update pod-level actuated resources", "resource", rName, "pod", klog.KObj(pod)) - } - } return nil } @@ -984,6 +978,7 @@ func (m *kubeGenericRuntimeManager) doPodResizeAction(ctx context.Context, pod * return err } } + // At downsizing, requests should shrink prior to limits in order to keep "requests <= limits". if newPodCgReqValue < currPodCgReqValue { // TODO: Pass logger from context once contextual logging migration is complete @@ -997,6 +992,12 @@ func (m *kubeGenericRuntimeManager) doPodResizeAction(ctx context.Context, pod * return err } } + + if utilfeature.DefaultFeatureGate.Enabled(features.InPlacePodLevelResourcesVerticalScaling) && podContainerChanges.UpdatePodLevelResources { + if err = updateActuatedPodLevelResources(rName); err != nil { + logger.Error(err, "Failed to update pod-level actuated resources", "resource", rName, "pod", klog.KObj(pod)) + } + } return err }