Skip to content

Commit da4dc0a

Browse files
committed
Stop defaulting container ResizePolicy
1 parent 40f222b commit da4dc0a

File tree

3 files changed

+5
-241
lines changed

3 files changed

+5
-241
lines changed

pkg/apis/core/v1/defaults.go

Lines changed: 0 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -182,29 +182,6 @@ func SetDefaults_Pod(obj *v1.Pod) {
182182
}
183183
}
184184
}
185-
if utilfeature.DefaultFeatureGate.Enabled(features.InPlacePodVerticalScaling) &&
186-
obj.Spec.Containers[i].Resources.Requests != nil {
187-
// For normal containers, set resize restart policy to default value (NotRequired), if not specified.
188-
resizePolicySpecified := make(map[v1.ResourceName]bool)
189-
for _, p := range obj.Spec.Containers[i].ResizePolicy {
190-
resizePolicySpecified[p.ResourceName] = true
191-
}
192-
setDefaultResizePolicy := func(resourceName v1.ResourceName) {
193-
if _, found := resizePolicySpecified[resourceName]; !found {
194-
obj.Spec.Containers[i].ResizePolicy = append(obj.Spec.Containers[i].ResizePolicy,
195-
v1.ContainerResizePolicy{
196-
ResourceName: resourceName,
197-
RestartPolicy: v1.NotRequired,
198-
})
199-
}
200-
}
201-
if _, exists := obj.Spec.Containers[i].Resources.Requests[v1.ResourceCPU]; exists {
202-
setDefaultResizePolicy(v1.ResourceCPU)
203-
}
204-
if _, exists := obj.Spec.Containers[i].Resources.Requests[v1.ResourceMemory]; exists {
205-
setDefaultResizePolicy(v1.ResourceMemory)
206-
}
207-
}
208185
}
209186
for i := range obj.Spec.InitContainers {
210187
if obj.Spec.InitContainers[i].Resources.Limits != nil {

pkg/apis/core/v1/defaults_test.go

Lines changed: 0 additions & 212 deletions
Original file line numberDiff line numberDiff line change
@@ -2982,218 +2982,6 @@ func TestSetDefaultServiceInternalTrafficPolicy(t *testing.T) {
29822982
}
29832983
}
29842984

2985-
func TestSetDefaultResizePolicy(t *testing.T) {
2986-
// verify we default to NotRequired restart policy for resize when resources are specified
2987-
featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.InPlacePodVerticalScaling, true)
2988-
2989-
for desc, tc := range map[string]struct {
2990-
testContainer v1.Container
2991-
expectedResizePolicy []v1.ContainerResizePolicy
2992-
}{
2993-
"CPU and memory limits are specified": {
2994-
testContainer: v1.Container{
2995-
Resources: v1.ResourceRequirements{
2996-
Limits: v1.ResourceList{
2997-
v1.ResourceCPU: resource.MustParse("100m"),
2998-
v1.ResourceMemory: resource.MustParse("200Mi"),
2999-
},
3000-
},
3001-
},
3002-
expectedResizePolicy: []v1.ContainerResizePolicy{
3003-
{
3004-
ResourceName: v1.ResourceCPU,
3005-
RestartPolicy: v1.NotRequired,
3006-
},
3007-
{
3008-
ResourceName: v1.ResourceMemory,
3009-
RestartPolicy: v1.NotRequired,
3010-
},
3011-
},
3012-
},
3013-
"CPU requests are specified": {
3014-
testContainer: v1.Container{
3015-
Resources: v1.ResourceRequirements{
3016-
Requests: v1.ResourceList{
3017-
v1.ResourceCPU: resource.MustParse("100m"),
3018-
},
3019-
},
3020-
},
3021-
expectedResizePolicy: []v1.ContainerResizePolicy{
3022-
{
3023-
ResourceName: v1.ResourceCPU,
3024-
RestartPolicy: v1.NotRequired,
3025-
},
3026-
},
3027-
},
3028-
"Memory limits are specified": {
3029-
testContainer: v1.Container{
3030-
Resources: v1.ResourceRequirements{
3031-
Limits: v1.ResourceList{
3032-
v1.ResourceMemory: resource.MustParse("200Mi"),
3033-
},
3034-
},
3035-
},
3036-
expectedResizePolicy: []v1.ContainerResizePolicy{
3037-
{
3038-
ResourceName: v1.ResourceMemory,
3039-
RestartPolicy: v1.NotRequired,
3040-
},
3041-
},
3042-
},
3043-
"No resources are specified": {
3044-
testContainer: v1.Container{Name: "besteffort"},
3045-
expectedResizePolicy: nil,
3046-
},
3047-
"CPU and memory limits are specified with restartContainer resize policy for memory": {
3048-
testContainer: v1.Container{
3049-
Resources: v1.ResourceRequirements{
3050-
Limits: v1.ResourceList{
3051-
v1.ResourceCPU: resource.MustParse("100m"),
3052-
v1.ResourceMemory: resource.MustParse("200Mi"),
3053-
},
3054-
},
3055-
ResizePolicy: []v1.ContainerResizePolicy{
3056-
{
3057-
ResourceName: v1.ResourceMemory,
3058-
RestartPolicy: v1.RestartContainer,
3059-
},
3060-
},
3061-
},
3062-
expectedResizePolicy: []v1.ContainerResizePolicy{
3063-
{
3064-
ResourceName: v1.ResourceMemory,
3065-
RestartPolicy: v1.RestartContainer,
3066-
},
3067-
{
3068-
ResourceName: v1.ResourceCPU,
3069-
RestartPolicy: v1.NotRequired,
3070-
},
3071-
},
3072-
},
3073-
"CPU requests and memory limits are specified with restartContainer resize policy for CPU": {
3074-
testContainer: v1.Container{
3075-
Resources: v1.ResourceRequirements{
3076-
Limits: v1.ResourceList{
3077-
v1.ResourceMemory: resource.MustParse("200Mi"),
3078-
},
3079-
Requests: v1.ResourceList{
3080-
v1.ResourceCPU: resource.MustParse("100m"),
3081-
},
3082-
},
3083-
ResizePolicy: []v1.ContainerResizePolicy{
3084-
{
3085-
ResourceName: v1.ResourceCPU,
3086-
RestartPolicy: v1.RestartContainer,
3087-
},
3088-
},
3089-
},
3090-
expectedResizePolicy: []v1.ContainerResizePolicy{
3091-
{
3092-
ResourceName: v1.ResourceCPU,
3093-
RestartPolicy: v1.RestartContainer,
3094-
},
3095-
{
3096-
ResourceName: v1.ResourceMemory,
3097-
RestartPolicy: v1.NotRequired,
3098-
},
3099-
},
3100-
},
3101-
"CPU and memory requests are specified with restartContainer resize policy for both": {
3102-
testContainer: v1.Container{
3103-
Resources: v1.ResourceRequirements{
3104-
Requests: v1.ResourceList{
3105-
v1.ResourceCPU: resource.MustParse("100m"),
3106-
v1.ResourceMemory: resource.MustParse("200Mi"),
3107-
},
3108-
},
3109-
ResizePolicy: []v1.ContainerResizePolicy{
3110-
{
3111-
ResourceName: v1.ResourceCPU,
3112-
RestartPolicy: v1.RestartContainer,
3113-
},
3114-
{
3115-
ResourceName: v1.ResourceMemory,
3116-
RestartPolicy: v1.RestartContainer,
3117-
},
3118-
},
3119-
},
3120-
expectedResizePolicy: []v1.ContainerResizePolicy{
3121-
{
3122-
ResourceName: v1.ResourceCPU,
3123-
RestartPolicy: v1.RestartContainer,
3124-
},
3125-
{
3126-
ResourceName: v1.ResourceMemory,
3127-
RestartPolicy: v1.RestartContainer,
3128-
},
3129-
},
3130-
},
3131-
"Ephemeral storage limits are specified": {
3132-
testContainer: v1.Container{
3133-
Resources: v1.ResourceRequirements{
3134-
Limits: v1.ResourceList{
3135-
v1.ResourceEphemeralStorage: resource.MustParse("500Mi"),
3136-
},
3137-
},
3138-
},
3139-
expectedResizePolicy: nil,
3140-
},
3141-
"Ephemeral storage requests and CPU limits are specified": {
3142-
testContainer: v1.Container{
3143-
Resources: v1.ResourceRequirements{
3144-
Limits: v1.ResourceList{
3145-
v1.ResourceCPU: resource.MustParse("100m"),
3146-
},
3147-
Requests: v1.ResourceList{
3148-
v1.ResourceEphemeralStorage: resource.MustParse("500Mi"),
3149-
},
3150-
},
3151-
},
3152-
expectedResizePolicy: []v1.ContainerResizePolicy{
3153-
{
3154-
ResourceName: v1.ResourceCPU,
3155-
RestartPolicy: v1.NotRequired,
3156-
},
3157-
},
3158-
},
3159-
"Ephemeral storage requests and limits, memory requests with restartContainer policy are specified": {
3160-
testContainer: v1.Container{
3161-
Resources: v1.ResourceRequirements{
3162-
Limits: v1.ResourceList{
3163-
v1.ResourceEphemeralStorage: resource.MustParse("500Mi"),
3164-
},
3165-
Requests: v1.ResourceList{
3166-
v1.ResourceEphemeralStorage: resource.MustParse("500Mi"),
3167-
v1.ResourceMemory: resource.MustParse("200Mi"),
3168-
},
3169-
},
3170-
ResizePolicy: []v1.ContainerResizePolicy{
3171-
{
3172-
ResourceName: v1.ResourceMemory,
3173-
RestartPolicy: v1.RestartContainer,
3174-
},
3175-
},
3176-
},
3177-
expectedResizePolicy: []v1.ContainerResizePolicy{
3178-
{
3179-
ResourceName: v1.ResourceMemory,
3180-
RestartPolicy: v1.RestartContainer,
3181-
},
3182-
},
3183-
},
3184-
} {
3185-
t.Run(desc, func(t *testing.T) {
3186-
testPod := v1.Pod{}
3187-
testPod.Spec.Containers = append(testPod.Spec.Containers, tc.testContainer)
3188-
output := roundTrip(t, runtime.Object(&testPod))
3189-
pod2 := output.(*v1.Pod)
3190-
if !cmp.Equal(pod2.Spec.Containers[0].ResizePolicy, tc.expectedResizePolicy) {
3191-
t.Errorf("expected resize policy %+v, but got %+v", tc.expectedResizePolicy, pod2.Spec.Containers[0].ResizePolicy)
3192-
}
3193-
})
3194-
}
3195-
}
3196-
31972985
func TestSetDefaults_Volume(t *testing.T) {
31982986
featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.ImageVolume, true)
31992987
for desc, tc := range map[string]struct {

pkg/kubelet/kuberuntime/kuberuntime_manager.go

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -617,17 +617,16 @@ func (m *kubeGenericRuntimeManager) computePodResizeAction(pod *v1.Pod, containe
617617
return true
618618
}
619619

620-
resizePolicy := make(map[v1.ResourceName]v1.ResourceResizeRestartPolicy)
621-
for _, pol := range container.ResizePolicy {
622-
resizePolicy[pol.ResourceName] = pol.RestartPolicy
623-
}
624620
determineContainerResize := func(rName v1.ResourceName, specValue, statusValue int64) (resize, restart bool) {
625621
if specValue == statusValue {
626622
return false, false
627623
}
628-
if resizePolicy[rName] == v1.RestartContainer {
629-
return true, true
624+
for _, policy := range container.ResizePolicy {
625+
if policy.ResourceName == rName {
626+
return true, policy.RestartPolicy == v1.RestartContainer
627+
}
630628
}
629+
// If a resource policy isn't set, the implicit default is NotRequired.
631630
return true, false
632631
}
633632
markContainerForUpdate := func(rName v1.ResourceName, specValue, statusValue int64) {

0 commit comments

Comments
 (0)