mirror of
https://github.com/zalando/postgres-operator.git
synced 2026-10-19 09:24:46 +02:00
This commit is contained in:
@@ -14,6 +14,10 @@ spec:
|
|||||||
foo_user: [] # role for application foo
|
foo_user: [] # role for application foo
|
||||||
databases:
|
databases:
|
||||||
foo: zalando # dbname: owner
|
foo: zalando # dbname: owner
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
hugepages-2Mi: 250Mi
|
||||||
|
memory: 250Mi
|
||||||
preparedDatabases:
|
preparedDatabases:
|
||||||
bar: {}
|
bar: {}
|
||||||
postgresql:
|
postgresql:
|
||||||
|
|||||||
@@ -439,6 +439,12 @@ spec:
|
|||||||
pattern: '^(\d+(e\d+)?|\d+(\.\d+)?(e\d+)?[EPTGMK]i?)$'
|
pattern: '^(\d+(e\d+)?|\d+(\.\d+)?(e\d+)?[EPTGMK]i?)$'
|
||||||
# Note: the value specified here must not be zero or be higher
|
# Note: the value specified here must not be zero or be higher
|
||||||
# than the corresponding limit.
|
# than the corresponding limit.
|
||||||
|
hugepages-2Mi:
|
||||||
|
type: string
|
||||||
|
pattern: '^(\d+(e\d+)?|\d+(\.\d+)?(e\d+)?[EPTGMK]i?)$'
|
||||||
|
hugepages-1Gi:
|
||||||
|
type: string
|
||||||
|
pattern: '^(\d+(e\d+)?|\d+(\.\d+)?(e\d+)?[EPTGMK]i?)$'
|
||||||
requests:
|
requests:
|
||||||
type: object
|
type: object
|
||||||
properties:
|
properties:
|
||||||
@@ -448,6 +454,12 @@ spec:
|
|||||||
memory:
|
memory:
|
||||||
type: string
|
type: string
|
||||||
pattern: '^(\d+(e\d+)?|\d+(\.\d+)?(e\d+)?[EPTGMK]i?)$'
|
pattern: '^(\d+(e\d+)?|\d+(\.\d+)?(e\d+)?[EPTGMK]i?)$'
|
||||||
|
hugepages-2Mi:
|
||||||
|
type: string
|
||||||
|
pattern: '^(\d+(e\d+)?|\d+(\.\d+)?(e\d+)?[EPTGMK]i?)$'
|
||||||
|
hugepages-1Gi:
|
||||||
|
type: string
|
||||||
|
pattern: '^(\d+(e\d+)?|\d+(\.\d+)?(e\d+)?[EPTGMK]i?)$'
|
||||||
schedulerName:
|
schedulerName:
|
||||||
type: string
|
type: string
|
||||||
serviceAnnotations:
|
serviceAnnotations:
|
||||||
|
|||||||
@@ -3,10 +3,11 @@ package v1
|
|||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
|
|
||||||
acidzalando "github.com/zalando/postgres-operator/pkg/apis/acid.zalan.do"
|
|
||||||
"github.com/zalando/postgres-operator/pkg/util"
|
|
||||||
apiextv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
|
apiextv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
|
||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
|
|
||||||
|
acidzalando "github.com/zalando/postgres-operator/pkg/apis/acid.zalan.do"
|
||||||
|
"github.com/zalando/postgres-operator/pkg/util"
|
||||||
)
|
)
|
||||||
|
|
||||||
// CRDResource* define names necesssary for the k8s CRD API
|
// CRDResource* define names necesssary for the k8s CRD API
|
||||||
@@ -684,6 +685,14 @@ var PostgresCRDResourceValidation = apiextv1.CustomResourceValidation{
|
|||||||
Type: "string",
|
Type: "string",
|
||||||
Pattern: "^(\\d+(e\\d+)?|\\d+(\\.\\d+)?(e\\d+)?[EPTGMK]i?)$",
|
Pattern: "^(\\d+(e\\d+)?|\\d+(\\.\\d+)?(e\\d+)?[EPTGMK]i?)$",
|
||||||
},
|
},
|
||||||
|
"hugepages-2Mi": {
|
||||||
|
Type: "string",
|
||||||
|
Pattern: "^(\\d+(e\\d+)?|\\d+(\\.\\d+)?(e\\d+)?[EPTGMK]i?)$",
|
||||||
|
},
|
||||||
|
"hugepages-1Gi": {
|
||||||
|
Type: "string",
|
||||||
|
Pattern: "^(\\d+(e\\d+)?|\\d+(\\.\\d+)?(e\\d+)?[EPTGMK]i?)$",
|
||||||
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
"requests": {
|
"requests": {
|
||||||
@@ -697,6 +706,14 @@ var PostgresCRDResourceValidation = apiextv1.CustomResourceValidation{
|
|||||||
Type: "string",
|
Type: "string",
|
||||||
Pattern: "^(\\d+(e\\d+)?|\\d+(\\.\\d+)?(e\\d+)?[EPTGMK]i?)$",
|
Pattern: "^(\\d+(e\\d+)?|\\d+(\\.\\d+)?(e\\d+)?[EPTGMK]i?)$",
|
||||||
},
|
},
|
||||||
|
"hugepages-2Mi": {
|
||||||
|
Type: "string",
|
||||||
|
Pattern: "^(\\d+(e\\d+)?|\\d+(\\.\\d+)?(e\\d+)?[EPTGMK]i?)$",
|
||||||
|
},
|
||||||
|
"hugepages-1Gi": {
|
||||||
|
Type: "string",
|
||||||
|
Pattern: "^(\\d+(e\\d+)?|\\d+(\\.\\d+)?(e\\d+)?[EPTGMK]i?)$",
|
||||||
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -153,8 +153,10 @@ type PostgresqlParam struct {
|
|||||||
|
|
||||||
// ResourceDescription describes CPU and memory resources defined for a cluster.
|
// ResourceDescription describes CPU and memory resources defined for a cluster.
|
||||||
type ResourceDescription struct {
|
type ResourceDescription struct {
|
||||||
CPU string `json:"cpu"`
|
CPU string `json:"cpu"`
|
||||||
Memory string `json:"memory"`
|
Memory string `json:"memory"`
|
||||||
|
HugePages2Mi string `json:"hugepages-2Mi"`
|
||||||
|
HugePages1Gi string `json:"hugepages-1Gi"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// Resources describes requests and limits for the cluster resouces.
|
// Resources describes requests and limits for the cluster resouces.
|
||||||
|
|||||||
+17
-3
@@ -20,6 +20,10 @@ import (
|
|||||||
"k8s.io/apimachinery/pkg/types"
|
"k8s.io/apimachinery/pkg/types"
|
||||||
"k8s.io/apimachinery/pkg/util/intstr"
|
"k8s.io/apimachinery/pkg/util/intstr"
|
||||||
|
|
||||||
|
"golang.org/x/exp/maps"
|
||||||
|
batchv1 "k8s.io/api/batch/v1"
|
||||||
|
"k8s.io/apimachinery/pkg/labels"
|
||||||
|
|
||||||
acidv1 "github.com/zalando/postgres-operator/pkg/apis/acid.zalan.do/v1"
|
acidv1 "github.com/zalando/postgres-operator/pkg/apis/acid.zalan.do/v1"
|
||||||
"github.com/zalando/postgres-operator/pkg/spec"
|
"github.com/zalando/postgres-operator/pkg/spec"
|
||||||
"github.com/zalando/postgres-operator/pkg/util"
|
"github.com/zalando/postgres-operator/pkg/util"
|
||||||
@@ -28,9 +32,6 @@ import (
|
|||||||
"github.com/zalando/postgres-operator/pkg/util/k8sutil"
|
"github.com/zalando/postgres-operator/pkg/util/k8sutil"
|
||||||
"github.com/zalando/postgres-operator/pkg/util/patroni"
|
"github.com/zalando/postgres-operator/pkg/util/patroni"
|
||||||
"github.com/zalando/postgres-operator/pkg/util/retryutil"
|
"github.com/zalando/postgres-operator/pkg/util/retryutil"
|
||||||
"golang.org/x/exp/maps"
|
|
||||||
batchv1 "k8s.io/api/batch/v1"
|
|
||||||
"k8s.io/apimachinery/pkg/labels"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
@@ -267,6 +268,19 @@ func fillResourceList(spec acidv1.ResourceDescription, defaults acidv1.ResourceD
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if spec.HugePages2Mi != "" {
|
||||||
|
requests[v1.ResourceHugePagesPrefix+"1Mi"], err = resource.ParseQuantity(spec.HugePages2Mi)
|
||||||
|
if err != nil {
|
||||||
|
return nil, fmt.Errorf("could not parse hugepages-2Mi quantity: %v", err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if spec.HugePages1Gi != "" {
|
||||||
|
requests[v1.ResourceHugePagesPrefix+"1Gi"], err = resource.ParseQuantity(spec.HugePages1Gi)
|
||||||
|
if err != nil {
|
||||||
|
return nil, fmt.Errorf("could not parse hugepages-1Gi quantity: %v", err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return requests, nil
|
return requests, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user