@@ -193,30 +193,36 @@ func applyVPAPolicyForContainer(containerName string,
193
193
cappedRecommendations := containerRecommendation .DeepCopy ()
194
194
containerPolicy := GetContainerResourcePolicy (containerName , policy )
195
195
196
+ var minAllowed apiv1.ResourceList
197
+ if containerPolicy != nil {
198
+ minAllowed = containerPolicy .MinAllowed
199
+ }
200
+
201
+ var maxAllowed apiv1.ResourceList
202
+ if containerPolicy != nil {
203
+ maxAllowed = containerPolicy .MaxAllowed
204
+ }
205
+ if maxAllowed == nil {
206
+ maxAllowed = globalMaxAllowed
207
+ } else {
208
+ // Set resources from the global max allowed if the VPA max allowed is missing them.
209
+ for resourceName , quantity := range globalMaxAllowed {
210
+ if _ , ok := maxAllowed [resourceName ]; ! ok {
211
+ maxAllowed [resourceName ] = quantity
212
+ }
213
+ }
214
+ }
215
+
196
216
process := func (recommendation apiv1.ResourceList ) {
197
- for resourceName , recommended := range recommendation {
198
- var maxAllowed apiv1.ResourceList
199
- // containerPolicy can be nil (user does not have to configure it).
200
- if containerPolicy != nil {
201
- cappedToMin , _ := maybeCapToPolicyMin (recommended , resourceName , containerPolicy )
217
+ for resourceName := range recommendation {
218
+ if minAllowed != nil {
219
+ cappedToMin , _ := maybeCapToMin (recommendation [resourceName ], resourceName , minAllowed )
202
220
recommendation [resourceName ] = cappedToMin
203
-
204
- maxAllowed = containerPolicy .MaxAllowed
205
221
}
206
-
207
- if maxAllowed == nil {
208
- maxAllowed = globalMaxAllowed
209
- } else {
210
- // Set resources from the global maxAllowed if the VPA maxAllowed is missing them.
211
- for resourceName , quantity := range globalMaxAllowed {
212
- if _ , ok := maxAllowed [resourceName ]; ! ok {
213
- maxAllowed [resourceName ] = quantity
214
- }
215
- }
222
+ if maxAllowed != nil {
223
+ cappedToMax , _ := maybeCapToMax (recommendation [resourceName ], resourceName , maxAllowed )
224
+ recommendation [resourceName ] = cappedToMax
216
225
}
217
-
218
- cappedToMax , _ := maybeCapToMax (recommendation [resourceName ], resourceName , maxAllowed )
219
- recommendation [resourceName ] = cappedToMax
220
226
}
221
227
}
222
228
0 commit comments