diff --git a/pkg/cluster/k8sres.go b/pkg/cluster/k8sres.go index 642ee425b5e71279d1b68aa043b095b185652bfc..b775ee6364923fc7050d114e88f3abf3e35fb839 100644 --- a/pkg/cluster/k8sres.go +++ b/pkg/cluster/k8sres.go @@ -647,19 +647,46 @@ func (c *Cluster) generateStatefulSet(spec *acidv1.PostgresSpec) (*v1beta1.State if c.OpConfig.SetMemoryRequestToLimit { - isSmaller, err := util.RequestIsSmallerThanLimit(spec.Resources.ResourceRequests.Memory, spec.Resources.ResourceLimits.Memory) + // controller adjusts the default memory request at operator startup + + request := spec.Resources.ResourceRequests.Memory + if request == "" { + request = c.OpConfig.DefaultMemoryRequest + } + + limit := spec.Resources.ResourceLimits.Memory + if limit == "" { + limit = c.OpConfig.DefaultMemoryLimit + } + + isSmaller, err := util.RequestIsSmallerThanLimit(request, limit) 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 + c.logger.Warningf("The memory request of %v for the Postgres container is increased to match the memory limit of %v.", request, limit) + spec.Resources.ResourceRequests.Memory = limit } + // controller adjusts the Scalyr sidecar request at operator startup + // as this sidecar is managed separately + // adjust sidecar containers defined for that particular cluster for _, sidecar := range spec.Sidecars { - isSmaller, err := util.RequestIsSmallerThanLimit(sidecar.Resources.ResourceRequests.Memory, sidecar.Resources.ResourceLimits.Memory) + + // TODO #413 + sidecarRequest := sidecar.Resources.ResourceRequests.Memory + if request == "" { + request = c.OpConfig.DefaultMemoryRequest + } + + sidecarLimit := sidecar.Resources.ResourceLimits.Memory + if limit == "" { + limit = c.OpConfig.DefaultMemoryLimit + } + + isSmaller, err := util.RequestIsSmallerThanLimit(sidecarRequest, sidecarLimit) if err != nil { return nil, err } @@ -669,9 +696,6 @@ func (c *Cluster) generateStatefulSet(spec *acidv1.PostgresSpec) (*v1beta1.State } } - // controller adjusts default memory request and Scalyr sidecar container's request - // as those do not need to be synced - } defaultResources := c.makeDefaultResources()