Add rudimentary parse error processing
This commit is contained in:
		
							parent
							
								
									c6df079d2b
								
							
						
					
					
						commit
						85aef0f30b
					
				|  | @ -647,7 +647,11 @@ func (c *Cluster) generateStatefulSet(spec *acidv1.PostgresSpec) (*v1beta1.State | |||
| 
 | ||||
| 	if c.OpConfig.SetMemoryRequestToLimit { | ||||
| 
 | ||||
| 		if util.RequestIsSmallerThanLimit(spec.Resources.ResourceRequests.Memory, spec.Resources.ResourceLimits.Memory) { | ||||
| 		isSmaller, err := util.RequestIsSmallerThanLimit(spec.Resources.ResourceRequests.Memory, spec.Resources.ResourceLimits.Memory) | ||||
| 		if err != nil { | ||||
| 			return nil, err | ||||
| 		} | ||||
| 		if isSmaller { | ||||
| 			c.logger.Warningf("The memory request of %v for the Postgres container is increased to match the memory limit of %v.", spec.Resources.ResourceRequests.Memory, spec.Resources.ResourceLimits.Memory) | ||||
| 			spec.Resources.ResourceRequests.Memory = spec.Resources.ResourceLimits.Memory | ||||
| 
 | ||||
|  | @ -655,7 +659,11 @@ func (c *Cluster) generateStatefulSet(spec *acidv1.PostgresSpec) (*v1beta1.State | |||
| 
 | ||||
| 		// adjust sidecar containers defined for that particular cluster
 | ||||
| 		for _, sidecar := range spec.Sidecars { | ||||
| 			if util.RequestIsSmallerThanLimit(sidecar.Resources.ResourceRequests.Memory, sidecar.Resources.ResourceLimits.Memory) { | ||||
| 			isSmaller, err := util.RequestIsSmallerThanLimit(sidecar.Resources.ResourceRequests.Memory, sidecar.Resources.ResourceLimits.Memory) | ||||
| 			if err != nil { | ||||
| 				return nil, err | ||||
| 			} | ||||
| 			if isSmaller { | ||||
| 				c.logger.Warningf("The memory request of %v for the %v sidecar container is increased to match the memory limit of %v.", sidecar.Resources.ResourceRequests.Memory, sidecar.Name, sidecar.Resources.ResourceLimits.Memory) | ||||
| 				sidecar.Resources.ResourceRequests.Memory = sidecar.Resources.ResourceLimits.Memory | ||||
| 			} | ||||
|  |  | |||
|  | @ -112,12 +112,20 @@ func (c *Controller) initOperatorConfig() { | |||
| 
 | ||||
| 	if c.opConfig.SetMemoryRequestToLimit { | ||||
| 
 | ||||
| 		if util.RequestIsSmallerThanLimit(c.opConfig.DefaultMemoryRequest, c.opConfig.DefaultMemoryLimit) { | ||||
| 		isSmaller, err := util.RequestIsSmallerThanLimit(c.opConfig.DefaultMemoryRequest, c.opConfig.DefaultMemoryLimit) | ||||
| 		if err != nil { | ||||
| 			panic(err) | ||||
| 		} | ||||
| 		if isSmaller { | ||||
| 			c.logger.Warningf("The default memory request of %v for Postgres containers is increased to match the default memory limit of %v.", c.opConfig.DefaultMemoryRequest, c.opConfig.DefaultMemoryLimit) | ||||
| 			c.opConfig.DefaultMemoryRequest = c.opConfig.DefaultMemoryLimit | ||||
| 		} | ||||
| 
 | ||||
| 		if util.RequestIsSmallerThanLimit(c.opConfig.ScalyrMemoryRequest, c.opConfig.ScalyrMemoryLimit) { | ||||
| 		isSmaller, err = util.RequestIsSmallerThanLimit(c.opConfig.ScalyrMemoryRequest, c.opConfig.ScalyrMemoryLimit) | ||||
| 		if err != nil { | ||||
| 			panic(err) | ||||
| 		} | ||||
| 		if isSmaller { | ||||
| 			c.logger.Warningf("The memory request of %v for the Scalyr sidecar container is increased to match the memory limit of %v.", c.opConfig.ScalyrMemoryRequest, c.opConfig.ScalyrMemoryLimit) | ||||
| 			c.opConfig.ScalyrMemoryRequest = c.opConfig.ScalyrMemoryLimit | ||||
| 		} | ||||
|  |  | |||
|  | @ -3,6 +3,7 @@ package util | |||
| import ( | ||||
| 	"crypto/md5" // #nosec we need it to for PostgreSQL md5 passwords
 | ||||
| 	"encoding/hex" | ||||
| 	"fmt" | ||||
| 	"math/rand" | ||||
| 	"regexp" | ||||
| 	"strings" | ||||
|  | @ -130,17 +131,17 @@ func Coalesce(val, defaultVal string) string { | |||
| } | ||||
| 
 | ||||
| // RequestIsSmallerThanLimit
 | ||||
| func RequestIsSmallerThanLimit(requestStr, limitStr string) bool { | ||||
| func RequestIsSmallerThanLimit(requestStr, limitStr string) (bool, error) { | ||||
| 
 | ||||
| 	request, err := resource.ParseQuantity(requestStr) | ||||
| 	if err != nil { | ||||
| 
 | ||||
| 		return false, fmt.Errorf("could not parse memory request %v : %v", requestStr, err) | ||||
| 	} | ||||
| 
 | ||||
| 	limit, err2 := resource.ParseQuantity(requestStr) | ||||
| 	limit, err2 := resource.ParseQuantity(limitStr) | ||||
| 	if err2 != nil { | ||||
| 
 | ||||
| 		return false, fmt.Errorf("could not parse memory limit %v : %v", limitStr, err2) | ||||
| 	} | ||||
| 
 | ||||
| 	return request.Cmp(limit) == -1 | ||||
| 	return request.Cmp(limit) == -1, nil | ||||
| } | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue