@@ -335,48 +335,56 @@ func ParseConfigMap(ctx context.Context, cfgm *v1.ConfigMap, nginxPlus bool, has
335335 }
336336
337337 if proxyBuffers , exists := cfgm .Data ["proxy-buffers" ]; exists {
338- proxyBuffersData , err := validation .NewNumberSizeConfig (proxyBuffers )
339- if err != nil {
338+ if parsedProxyBuffers , err := ParseProxyBuffersSpec (proxyBuffers ); err != nil {
340339 wrappedError := fmt .Errorf ("ConfigMap %s/%s: invalid value for 'proxy-buffers': %w" , cfgm .GetNamespace (), cfgm .GetName (), err )
341340
342341 nl .Errorf (l , "%s" , wrappedError .Error ())
343342 eventLog .Event (cfgm , v1 .EventTypeWarning , nl .EventReasonInvalidValue , wrappedError .Error ())
344343 configOk = false
345344 } else {
346- cfgParams .ProxyBuffers = proxyBuffersData
345+ cfgParams .ProxyBuffers = parsedProxyBuffers
347346 }
348347 }
349348
350349 if proxyBufferSize , exists := cfgm .Data ["proxy-buffer-size" ]; exists {
351- proxyBufferSizeData , err := validation .NewSizeWithUnit (proxyBufferSize )
352- if err != nil {
353- nl .Errorf (l , "error parsing nginx.org/proxy-buffer-size: %s" , err )
350+ if parsedProxyBufferSize , err := ParseSize (proxyBufferSize ); err != nil {
351+ wrappedError := fmt .Errorf ("ConfigMap %s/%s: invalid value for 'proxy-buffer-size': %w" , cfgm .GetNamespace (), cfgm .GetName (), err )
352+
353+ nl .Errorf (l , "%s" , wrappedError .Error ())
354+ eventLog .Event (cfgm , v1 .EventTypeWarning , nl .EventReasonInvalidValue , wrappedError .Error ())
355+ configOk = false
354356 } else {
355- cfgParams .ProxyBufferSize = proxyBufferSizeData
357+ cfgParams .ProxyBufferSize = parsedProxyBufferSize
356358 }
357359 }
358360
359- // Proxy Busy Buffers Size uses only size format, like "8k".
360361 if proxyBusyBuffersSize , exists := cfgm .Data ["proxy-busy-buffers-size" ]; exists {
361- proxyBusyBufferSizeUnit , err := validation .NewSizeWithUnit (proxyBusyBuffersSize )
362- if err != nil {
363- nl .Errorf (l , "error parsing nginx.org/proxy-busy-buffers-size: %s" , err )
362+ if parsedProxyBusyBuffersSize , err := ParseSize (proxyBusyBuffersSize ); err != nil {
363+ wrappedError := fmt .Errorf ("ConfigMap %s/%s: invalid value for 'proxy-busy-buffers-size': %w" , cfgm .GetNamespace (), cfgm .GetName (), err )
364+
365+ nl .Errorf (l , "%s" , wrappedError .Error ())
366+ eventLog .Event (cfgm , v1 .EventTypeWarning , nl .EventReasonInvalidValue , wrappedError .Error ())
367+ configOk = false
364368 } else {
365- cfgParams .ProxyBusyBuffersSize = proxyBusyBufferSizeUnit
369+ cfgParams .ProxyBusyBuffersSize = parsedProxyBusyBuffersSize
366370 }
367371 }
368372
369- balancedProxyBuffers , balancedProxyBufferSize , balancedProxyBusyBufferSize , modifications , err := validation .BalanceProxyValues (cfgParams .ProxyBuffers , cfgParams .ProxyBufferSize , cfgParams .ProxyBusyBuffersSize , enableDirectiveAutoadjust )
370- if err != nil {
371- nl .Errorf (l , "error reconciling proxy_buffers, proxy_buffer_size, and proxy_busy_buffers_size values: %s" , err .Error ())
372- }
373- cfgParams .ProxyBuffers = balancedProxyBuffers
374- cfgParams .ProxyBufferSize = balancedProxyBufferSize
375- cfgParams .ProxyBusyBuffersSize = balancedProxyBusyBufferSize
373+ // Only run balance validation if auto-adjust is enabled
374+ if enableDirectiveAutoadjust {
375+ balancedProxyBuffers , balancedProxyBufferSize , balancedProxyBusyBufferSize , modifications , err := validation .BalanceProxyValues (cfgParams .ProxyBuffers , cfgParams .ProxyBufferSize , cfgParams .ProxyBusyBuffersSize , enableDirectiveAutoadjust )
376+ if err != nil {
377+ nl .Errorf (l , "error reconciling proxy_buffers, proxy_buffer_size, and proxy_busy_buffers_size values: %s" , err .Error ())
378+ } else {
379+ cfgParams .ProxyBuffers = balancedProxyBuffers
380+ cfgParams .ProxyBufferSize = balancedProxyBufferSize
381+ cfgParams .ProxyBusyBuffersSize = balancedProxyBusyBufferSize
376382
377- if len (modifications ) > 0 {
378- for _ , modification := range modifications {
379- nl .Infof (l , "Changes made to proxy values: %s" , modification )
383+ if len (modifications ) > 0 {
384+ for _ , modification := range modifications {
385+ nl .Infof (l , "Changes made to proxy values: %s" , modification )
386+ }
387+ }
380388 }
381389 }
382390
@@ -446,7 +454,7 @@ func ParseConfigMap(ctx context.Context, cfgm *v1.ConfigMap, nginxPlus bool, has
446454 }
447455 }
448456
449- _ , err = parseConfigMapZoneSync (l , cfgm , cfgParams , eventLog , nginxPlus )
457+ _ , err : = parseConfigMapZoneSync (l , cfgm , cfgParams , eventLog , nginxPlus )
450458 if err != nil {
451459 configOk = false
452460 }
0 commit comments