Skip to content

Commit 242dec3

Browse files
committed
Updated some unit tests and resolved some review comments
1 parent 5ed5732 commit 242dec3

File tree

9 files changed

+123
-564
lines changed

9 files changed

+123
-564
lines changed

pkg/apis/core/v1/defaults.go

Lines changed: 0 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -166,7 +166,6 @@ func SetDefaults_Service(obj *v1.Service) {
166166
}
167167

168168
}
169-
170169
func SetDefaults_Pod(obj *v1.Pod) {
171170
// If limits are specified, but requests are not, default requests to limits
172171
// This is done here rather than a more specific defaulting pass on v1.ResourceRequirements
@@ -183,10 +182,6 @@ func SetDefaults_Pod(obj *v1.Pod) {
183182
}
184183
}
185184
}
186-
if utilfeature.DefaultFeatureGate.Enabled(features.InPlacePodVerticalScaling) {
187-
// For normal containers, set resize restart policy to default value (NotRequired), if not specified..
188-
setDefaultResizePolicy(&obj.Spec.Containers[i])
189-
}
190185
}
191186
for i := range obj.Spec.InitContainers {
192187
if obj.Spec.InitContainers[i].Resources.Limits != nil {
@@ -199,12 +194,6 @@ func SetDefaults_Pod(obj *v1.Pod) {
199194
}
200195
}
201196
}
202-
if utilfeature.DefaultFeatureGate.Enabled(features.InPlacePodVerticalScaling) && utilfeature.DefaultFeatureGate.Enabled(features.SidecarContainers) {
203-
if obj.Spec.InitContainers[i].RestartPolicy != nil && *obj.Spec.InitContainers[i].RestartPolicy == v1.ContainerRestartPolicyAlways {
204-
// For restartable init containers, set resize restart policy to default value (NotRequired), if not specified.
205-
setDefaultResizePolicy(&obj.Spec.InitContainers[i])
206-
}
207-
}
208197
}
209198

210199
// Pod Requests default values must be applied after container-level default values
@@ -223,42 +212,6 @@ func SetDefaults_Pod(obj *v1.Pod) {
223212
defaultHostNetworkPorts(&obj.Spec.InitContainers)
224213
}
225214
}
226-
227-
// setDefaultResizePolicy set resize restart policy to default value (NotRequired), if not specified.
228-
func setDefaultResizePolicy(obj *v1.Container) {
229-
if obj.Resources.Requests == nil && obj.Resources.Limits == nil {
230-
return
231-
}
232-
resizePolicySpecified := make(map[v1.ResourceName]bool)
233-
for _, p := range obj.ResizePolicy {
234-
resizePolicySpecified[p.ResourceName] = true
235-
}
236-
defaultResizePolicy := func(resourceName v1.ResourceName) {
237-
if _, found := resizePolicySpecified[resourceName]; !found {
238-
obj.ResizePolicy = append(obj.ResizePolicy,
239-
v1.ContainerResizePolicy{
240-
ResourceName: resourceName,
241-
RestartPolicy: v1.NotRequired,
242-
})
243-
}
244-
}
245-
if !resizePolicySpecified[v1.ResourceCPU] {
246-
if _, exists := obj.Resources.Requests[v1.ResourceCPU]; exists {
247-
defaultResizePolicy(v1.ResourceCPU)
248-
} else if _, exists := obj.Resources.Limits[v1.ResourceCPU]; exists {
249-
defaultResizePolicy(v1.ResourceCPU)
250-
}
251-
}
252-
253-
if !resizePolicySpecified[v1.ResourceMemory] {
254-
if _, exists := obj.Resources.Requests[v1.ResourceMemory]; exists {
255-
defaultResizePolicy(v1.ResourceMemory)
256-
} else if _, exists := obj.Resources.Limits[v1.ResourceMemory]; exists {
257-
defaultResizePolicy(v1.ResourceMemory)
258-
}
259-
}
260-
}
261-
262215
func SetDefaults_PodSpec(obj *v1.PodSpec) {
263216
// New fields added here will break upgrade tests:
264217
// https://github.com/kubernetes/kubernetes/issues/69445

pkg/apis/core/v1/defaults_test.go

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

pkg/kubelet/kubelet_pods.go

Lines changed: 22 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1805,37 +1805,36 @@ func allocatedContainerResourcesMatchStatus(allocatedPod *v1.Pod, c *v1.Containe
18051805
}
18061806
}
18071807

1808-
// Only compare resizeable resources, and only compare resources that are explicitly configured.
1809-
if hasCPUReq {
1810-
if cs.Resources.CPURequest == nil {
1811-
if !cpuReq.IsZero() {
1812-
return false
1813-
}
1814-
} else if !cpuReq.Equal(*cs.Resources.CPURequest) &&
1815-
(cpuReq.MilliValue() > cm.MinShares || cs.Resources.CPURequest.MilliValue() > cm.MinShares) {
1816-
// If both allocated & status CPU requests are at or below MinShares then they are considered equal.
1808+
// Only compare resizeable resources, and only compare resources that are explicitly configured.
1809+
if hasCPUReq {
1810+
if cs.Resources.CPURequest == nil {
1811+
if !cpuReq.IsZero() {
18171812
return false
18181813
}
1814+
} else if !cpuReq.Equal(*cs.Resources.CPURequest) &&
1815+
(cpuReq.MilliValue() > cm.MinShares || cs.Resources.CPURequest.MilliValue() > cm.MinShares) {
1816+
// If both allocated & status CPU requests are at or below MinShares then they are considered equal.
1817+
return false
18191818
}
1820-
if hasCPULim {
1821-
if cs.Resources.CPULimit == nil {
1822-
if !cpuLim.IsZero() {
1823-
return false
1824-
}
1825-
} else if !cpuLim.Equal(*cs.Resources.CPULimit) &&
1826-
(cpuLim.MilliValue() > cm.MinMilliCPULimit || cs.Resources.CPULimit.MilliValue() > cm.MinMilliCPULimit) {
1827-
// If both allocated & status CPU limits are at or below the minimum limit, then they are considered equal.
1819+
}
1820+
if hasCPULim {
1821+
if cs.Resources.CPULimit == nil {
1822+
if !cpuLim.IsZero() {
18281823
return false
18291824
}
1825+
} else if !cpuLim.Equal(*cs.Resources.CPULimit) &&
1826+
(cpuLim.MilliValue() > cm.MinMilliCPULimit || cs.Resources.CPULimit.MilliValue() > cm.MinMilliCPULimit) {
1827+
// If both allocated & status CPU limits are at or below the minimum limit, then they are considered equal.
1828+
return false
18301829
}
1831-
if hasMemLim {
1832-
if cs.Resources.MemoryLimit == nil {
1833-
if !memLim.IsZero() {
1834-
return false
1835-
}
1836-
} else if !memLim.Equal(*cs.Resources.MemoryLimit) {
1830+
}
1831+
if hasMemLim {
1832+
if cs.Resources.MemoryLimit == nil {
1833+
if !memLim.IsZero() {
18371834
return false
18381835
}
1836+
} else if !memLim.Equal(*cs.Resources.MemoryLimit) {
1837+
return false
18391838
}
18401839
}
18411840
}

0 commit comments

Comments
 (0)