fix resource handling

This commit is contained in:
Felix Kunde 2022-03-18 18:54:51 +01:00
parent 4b859af2c3
commit 0d55e2e60c
2 changed files with 18 additions and 13 deletions

View File

@ -683,12 +683,17 @@ func (c *Cluster) enforceMinResourceLimits(spec *acidv1.PostgresSpec) error {
err error err error
) )
if spec.Resources == nil {
return nil
}
// setting limits too low can cause unnecessary evictions / OOM kills // setting limits too low can cause unnecessary evictions / OOM kills
minCPULimit := c.OpConfig.MinCPULimit minCPULimit := c.OpConfig.MinCPULimit
minMemoryLimit := c.OpConfig.MinMemoryLimit minMemoryLimit := c.OpConfig.MinMemoryLimit
cpuLimit := spec.Resources.ResourceLimits.CPU cpuLimit := spec.Resources.ResourceLimits.CPU
if cpuLimit != "" { if cpuLimit != "" {
cpuLimit := spec.Resources.ResourceLimits.CPU
isSmaller, err = util.IsSmallerQuantity(cpuLimit, minCPULimit) isSmaller, err = util.IsSmallerQuantity(cpuLimit, minCPULimit)
if err != nil { if err != nil {
return fmt.Errorf("could not compare defined CPU limit %s with configured minimum value %s: %v", cpuLimit, minCPULimit, err) return fmt.Errorf("could not compare defined CPU limit %s with configured minimum value %s: %v", cpuLimit, minCPULimit, err)

View File

@ -1007,14 +1007,14 @@ func (c *Cluster) generateStatefulSet(spec *acidv1.PostgresSpec) (*appsv1.Statef
// controller adjusts the default memory request at operator startup // controller adjusts the default memory request at operator startup
request := spec.Resources.ResourceRequests.Memory var request, limit string
if request == "" {
request = c.OpConfig.Resources.DefaultMemoryRequest
}
limit := spec.Resources.ResourceLimits.Memory if spec.Resources == nil {
if limit == "" { request = c.OpConfig.Resources.DefaultMemoryRequest
limit = c.OpConfig.Resources.DefaultMemoryLimit limit = c.OpConfig.Resources.DefaultMemoryLimit
} else {
request = spec.Resources.ResourceRequests.Memory
limit = spec.Resources.ResourceRequests.Memory
} }
isSmaller, err := util.IsSmallerQuantity(request, limit) isSmaller, err := util.IsSmallerQuantity(request, limit)
@ -1034,14 +1034,14 @@ func (c *Cluster) generateStatefulSet(spec *acidv1.PostgresSpec) (*appsv1.Statef
for _, sidecar := range spec.Sidecars { for _, sidecar := range spec.Sidecars {
// TODO #413 // TODO #413
sidecarRequest := sidecar.Resources.ResourceRequests.Memory var sidecarRequest, sidecarLimit string
if request == "" {
request = c.OpConfig.Resources.DefaultMemoryRequest
}
sidecarLimit := sidecar.Resources.ResourceLimits.Memory if sidecar.Resources == nil {
if limit == "" { sidecarRequest = c.OpConfig.Resources.DefaultMemoryRequest
limit = c.OpConfig.Resources.DefaultMemoryLimit sidecarLimit = c.OpConfig.Resources.DefaultMemoryLimit
} else {
sidecarRequest = sidecar.Resources.ResourceRequests.Memory
sidecarLimit = sidecar.Resources.ResourceRequests.Memory
} }
isSmaller, err := util.IsSmallerQuantity(sidecarRequest, sidecarLimit) isSmaller, err := util.IsSmallerQuantity(sidecarRequest, sidecarLimit)