@@ -2982,230 +2982,6 @@ func TestSetDefaultServiceInternalTrafficPolicy(t *testing.T) {
2982
2982
}
2983
2983
}
2984
2984
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
-
3209
2985
func TestSetDefaults_Volume (t * testing.T ) {
3210
2986
featuregatetesting .SetFeatureGateDuringTest (t , utilfeature .DefaultFeatureGate , features .ImageVolume , true )
3211
2987
for desc , tc := range map [string ]struct {
0 commit comments