mirror of
https://github.com/zalando/postgres-operator.git
synced 2026-10-19 09:45:22 +02:00
Add rudimentary parse error processing
This commit is contained in:
+10
-2
@@ -647,7 +647,11 @@ func (c *Cluster) generateStatefulSet(spec *acidv1.PostgresSpec) (*v1beta1.State
|
|||||||
|
|
||||||
if c.OpConfig.SetMemoryRequestToLimit {
|
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)
|
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
|
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
|
// adjust sidecar containers defined for that particular cluster
|
||||||
for _, sidecar := range spec.Sidecars {
|
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)
|
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
|
sidecar.Resources.ResourceRequests.Memory = sidecar.Resources.ResourceLimits.Memory
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -112,12 +112,20 @@ func (c *Controller) initOperatorConfig() {
|
|||||||
|
|
||||||
if c.opConfig.SetMemoryRequestToLimit {
|
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.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
|
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.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
|
c.opConfig.ScalyrMemoryRequest = c.opConfig.ScalyrMemoryLimit
|
||||||
}
|
}
|
||||||
|
|||||||
+6
-5
@@ -3,6 +3,7 @@ package util
|
|||||||
import (
|
import (
|
||||||
"crypto/md5" // #nosec we need it to for PostgreSQL md5 passwords
|
"crypto/md5" // #nosec we need it to for PostgreSQL md5 passwords
|
||||||
"encoding/hex"
|
"encoding/hex"
|
||||||
|
"fmt"
|
||||||
"math/rand"
|
"math/rand"
|
||||||
"regexp"
|
"regexp"
|
||||||
"strings"
|
"strings"
|
||||||
@@ -130,17 +131,17 @@ func Coalesce(val, defaultVal string) string {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// RequestIsSmallerThanLimit
|
// RequestIsSmallerThanLimit
|
||||||
func RequestIsSmallerThanLimit(requestStr, limitStr string) bool {
|
func RequestIsSmallerThanLimit(requestStr, limitStr string) (bool, error) {
|
||||||
|
|
||||||
request, err := resource.ParseQuantity(requestStr)
|
request, err := resource.ParseQuantity(requestStr)
|
||||||
if err != nil {
|
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 {
|
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
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user