@@ -193,30 +193,36 @@ func applyVPAPolicyForContainer(containerName string,
193193 cappedRecommendations := containerRecommendation .DeepCopy ()
194194 containerPolicy := GetContainerResourcePolicy (containerName , policy )
195195
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+
196216 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 )
202220 recommendation [resourceName ] = cappedToMin
203-
204- maxAllowed = containerPolicy .MaxAllowed
205221 }
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
216225 }
217-
218- cappedToMax , _ := maybeCapToMax (recommendation [resourceName ], resourceName , maxAllowed )
219- recommendation [resourceName ] = cappedToMax
220226 }
221227 }
222228
0 commit comments