mirror of
https://github.com/zalando/postgres-operator.git
synced 2026-10-09 07:15:57 +02:00
fix unit test and improve stability in e2e test (#1819)
* fix unit test and improve stability in e2e test * fix resource handling
This commit is contained in:
@@ -683,6 +683,10 @@ func (c *Cluster) enforceMinResourceLimits(spec *acidv1.PostgresSpec) error {
|
||||
err error
|
||||
)
|
||||
|
||||
if spec.Resources == nil {
|
||||
return nil
|
||||
}
|
||||
|
||||
// setting limits too low can cause unnecessary evictions / OOM kills
|
||||
minCPULimit := c.OpConfig.MinCPULimit
|
||||
minMemoryLimit := c.OpConfig.MinMemoryLimit
|
||||
|
||||
@@ -11,6 +11,7 @@ import (
|
||||
acidv1 "github.com/zalando/postgres-operator/pkg/apis/acid.zalan.do/v1"
|
||||
fakeacidv1 "github.com/zalando/postgres-operator/pkg/generated/clientset/versioned/fake"
|
||||
"github.com/zalando/postgres-operator/pkg/spec"
|
||||
"github.com/zalando/postgres-operator/pkg/util"
|
||||
"github.com/zalando/postgres-operator/pkg/util/config"
|
||||
"github.com/zalando/postgres-operator/pkg/util/constants"
|
||||
"github.com/zalando/postgres-operator/pkg/util/k8sutil"
|
||||
@@ -167,8 +168,17 @@ func TestInitAdditionalOwnerRoles(t *testing.T) {
|
||||
}
|
||||
|
||||
cl.initAdditionalOwnerRoles()
|
||||
if !reflect.DeepEqual(cl.pgUsers, expectedUsers) {
|
||||
t.Errorf("%s expected: %#v, got %#v", testName, expectedUsers, cl.pgUsers)
|
||||
|
||||
for _, additionalOwnerRole := range cl.Config.OpConfig.AdditionalOwnerRoles {
|
||||
expectedPgUser := expectedUsers[additionalOwnerRole]
|
||||
existingPgUser, exists := cl.pgUsers[additionalOwnerRole]
|
||||
if !exists {
|
||||
t.Errorf("%s additional owner role %q not initilaized", testName, additionalOwnerRole)
|
||||
}
|
||||
if !util.IsEqualIgnoreOrder(expectedPgUser.MemberOf, existingPgUser.MemberOf) {
|
||||
t.Errorf("%s unexpected membership of additional owner role %q: expected member of %#v, got member of %#v",
|
||||
testName, additionalOwnerRole, expectedPgUser.MemberOf, existingPgUser.MemberOf)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+15
-17
@@ -139,8 +139,8 @@ func (c *Cluster) makeDefaultResources() acidv1.Resources {
|
||||
func generateResourceRequirements(resources *acidv1.Resources, defaultResources acidv1.Resources) (*v1.ResourceRequirements, error) {
|
||||
var err error
|
||||
|
||||
var specRequests acidv1.ResourceDescription
|
||||
var specLimits acidv1.ResourceDescription
|
||||
var specRequests, specLimits acidv1.ResourceDescription
|
||||
|
||||
if resources == nil {
|
||||
specRequests = acidv1.ResourceDescription{}
|
||||
specLimits = acidv1.ResourceDescription{}
|
||||
@@ -1007,14 +1007,14 @@ func (c *Cluster) generateStatefulSet(spec *acidv1.PostgresSpec) (*appsv1.Statef
|
||||
|
||||
// controller adjusts the default memory request at operator startup
|
||||
|
||||
request := spec.Resources.ResourceRequests.Memory
|
||||
if request == "" {
|
||||
request = c.OpConfig.Resources.DefaultMemoryRequest
|
||||
}
|
||||
var request, limit string
|
||||
|
||||
limit := spec.Resources.ResourceLimits.Memory
|
||||
if limit == "" {
|
||||
if spec.Resources == nil {
|
||||
request = c.OpConfig.Resources.DefaultMemoryRequest
|
||||
limit = c.OpConfig.Resources.DefaultMemoryLimit
|
||||
} else {
|
||||
request = spec.Resources.ResourceRequests.Memory
|
||||
limit = spec.Resources.ResourceRequests.Memory
|
||||
}
|
||||
|
||||
isSmaller, err := util.IsSmallerQuantity(request, limit)
|
||||
@@ -1024,7 +1024,6 @@ func (c *Cluster) generateStatefulSet(spec *acidv1.PostgresSpec) (*appsv1.Statef
|
||||
if isSmaller {
|
||||
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
|
||||
@@ -1034,14 +1033,14 @@ func (c *Cluster) generateStatefulSet(spec *acidv1.PostgresSpec) (*appsv1.Statef
|
||||
for _, sidecar := range spec.Sidecars {
|
||||
|
||||
// TODO #413
|
||||
sidecarRequest := sidecar.Resources.ResourceRequests.Memory
|
||||
if request == "" {
|
||||
request = c.OpConfig.Resources.DefaultMemoryRequest
|
||||
}
|
||||
var sidecarRequest, sidecarLimit string
|
||||
|
||||
sidecarLimit := sidecar.Resources.ResourceLimits.Memory
|
||||
if limit == "" {
|
||||
limit = c.OpConfig.Resources.DefaultMemoryLimit
|
||||
if sidecar.Resources == nil {
|
||||
sidecarRequest = c.OpConfig.Resources.DefaultMemoryRequest
|
||||
sidecarLimit = c.OpConfig.Resources.DefaultMemoryLimit
|
||||
} else {
|
||||
sidecarRequest = sidecar.Resources.ResourceRequests.Memory
|
||||
sidecarLimit = sidecar.Resources.ResourceRequests.Memory
|
||||
}
|
||||
|
||||
isSmaller, err := util.IsSmallerQuantity(sidecarRequest, sidecarLimit)
|
||||
@@ -1057,7 +1056,6 @@ func (c *Cluster) generateStatefulSet(spec *acidv1.PostgresSpec) (*appsv1.Statef
|
||||
}
|
||||
|
||||
defaultResources := c.makeDefaultResources()
|
||||
|
||||
resourceRequirements, err := generateResourceRequirements(spec.Resources, defaultResources)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("could not generate resource requirements: %v", err)
|
||||
|
||||
@@ -1578,7 +1578,7 @@ func TestEnableLoadBalancers(t *testing.T) {
|
||||
EnableReplicaLoadBalancer: util.False(),
|
||||
EnableReplicaPoolerLoadBalancer: util.False(),
|
||||
NumberOfInstances: 1,
|
||||
Resources: acidv1.Resources{
|
||||
Resources: &acidv1.Resources{
|
||||
ResourceRequests: acidv1.ResourceDescription{CPU: "1", Memory: "10"},
|
||||
ResourceLimits: acidv1.ResourceDescription{CPU: "1", Memory: "10"},
|
||||
},
|
||||
@@ -1625,7 +1625,7 @@ func TestEnableLoadBalancers(t *testing.T) {
|
||||
EnableReplicaLoadBalancer: util.True(),
|
||||
EnableReplicaPoolerLoadBalancer: util.True(),
|
||||
NumberOfInstances: 1,
|
||||
Resources: acidv1.Resources{
|
||||
Resources: &acidv1.Resources{
|
||||
ResourceRequests: acidv1.ResourceDescription{CPU: "1", Memory: "10"},
|
||||
ResourceLimits: acidv1.ResourceDescription{CPU: "1", Memory: "10"},
|
||||
},
|
||||
@@ -1720,7 +1720,7 @@ func TestVolumeSelector(t *testing.T) {
|
||||
return acidv1.PostgresSpec{
|
||||
TeamID: "myapp",
|
||||
NumberOfInstances: 0,
|
||||
Resources: acidv1.Resources{
|
||||
Resources: &acidv1.Resources{
|
||||
ResourceRequests: acidv1.ResourceDescription{CPU: "1", Memory: "10"},
|
||||
ResourceLimits: acidv1.ResourceDescription{CPU: "1", Memory: "10"},
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user