From 6f2b5c052d88f5c857f53bcda49e8b23d312fc73 Mon Sep 17 00:00:00 2001 From: Felix Kunde Date: Fri, 24 Jul 2026 12:02:46 +0200 Subject: [PATCH] update upper iops and throughput limits --- charts/postgres-operator-ui/templates/deployment.yaml | 4 ++-- charts/postgres-operator/crds/postgresqls.yaml | 2 ++ docs/reference/cluster_manifest.md | 4 ++-- manifests/postgresql.crd.yaml | 2 ++ pkg/apis/acid.zalan.do/v1/postgresql.crd.yaml | 2 ++ pkg/apis/acid.zalan.do/v1/postgresql_type.go | 8 +++++--- ui/manifests/deployment.yaml | 4 ++-- ui/operator_ui/main.py | 4 ++-- ui/run_local.sh | 4 ++-- 9 files changed, 21 insertions(+), 13 deletions(-) diff --git a/charts/postgres-operator-ui/templates/deployment.yaml b/charts/postgres-operator-ui/templates/deployment.yaml index c8797e42e..d4a2a88b8 100644 --- a/charts/postgres-operator-ui/templates/deployment.yaml +++ b/charts/postgres-operator-ui/templates/deployment.yaml @@ -81,8 +81,8 @@ spec: "cost_memory": 0.014375, "free_iops": 3000, "free_throughput": 125, - "limit_iops": 16000, - "limit_throughput": 1000, + "limit_iops": 80000, + "limit_throughput": 2000, "postgresql_versions": [ "18", "17", diff --git a/charts/postgres-operator/crds/postgresqls.yaml b/charts/postgres-operator/crds/postgresqls.yaml index 53e011269..f3dcbab59 100644 --- a/charts/postgres-operator/crds/postgresqls.yaml +++ b/charts/postgres-operator/crds/postgresqls.yaml @@ -3259,6 +3259,7 @@ spec: properties: iops: format: int32 + maximum: 80000 type: integer isSubPathExpr: type: boolean @@ -3320,6 +3321,7 @@ spec: type: string throughput: format: int32 + maximum: 2000 type: integer type: type: string diff --git a/docs/reference/cluster_manifest.md b/docs/reference/cluster_manifest.md index 0717e411f..7dddd5951 100644 --- a/docs/reference/cluster_manifest.md +++ b/docs/reference/cluster_manifest.md @@ -554,11 +554,11 @@ properties of the persistent storage that stores Postgres data. * **iops** When running the operator on AWS the latest generation of EBS volumes (`gp3`) - allows for configuring the number of IOPS. Maximum is 16000. Optional. + allows for configuring the number of IOPS. Maximum is 80000. Optional. * **throughput** When running the operator on AWS the latest generation of EBS volumes (`gp3`) - allows for configuring the throughput in MB/s. Maximum is 1000. Optional. + allows for configuring the throughput in MB/s. Maximum is 2000. Optional. * **selector** A label query over PVs to consider for binding. See the [Kubernetes diff --git a/manifests/postgresql.crd.yaml b/manifests/postgresql.crd.yaml index 53e011269..f3dcbab59 100644 --- a/manifests/postgresql.crd.yaml +++ b/manifests/postgresql.crd.yaml @@ -3259,6 +3259,7 @@ spec: properties: iops: format: int32 + maximum: 80000 type: integer isSubPathExpr: type: boolean @@ -3320,6 +3321,7 @@ spec: type: string throughput: format: int32 + maximum: 2000 type: integer type: type: string diff --git a/pkg/apis/acid.zalan.do/v1/postgresql.crd.yaml b/pkg/apis/acid.zalan.do/v1/postgresql.crd.yaml index 53e011269..f3dcbab59 100644 --- a/pkg/apis/acid.zalan.do/v1/postgresql.crd.yaml +++ b/pkg/apis/acid.zalan.do/v1/postgresql.crd.yaml @@ -3259,6 +3259,7 @@ spec: properties: iops: format: int32 + maximum: 80000 type: integer isSubPathExpr: type: boolean @@ -3320,6 +3321,7 @@ spec: type: string throughput: format: int32 + maximum: 2000 type: integer type: type: string diff --git a/pkg/apis/acid.zalan.do/v1/postgresql_type.go b/pkg/apis/acid.zalan.do/v1/postgresql_type.go index 62b702ff7..2ea8c6ba8 100644 --- a/pkg/apis/acid.zalan.do/v1/postgresql_type.go +++ b/pkg/apis/acid.zalan.do/v1/postgresql_type.go @@ -167,9 +167,11 @@ type Volume struct { StorageClass string `json:"storageClass,omitempty"` SubPath string `json:"subPath,omitempty"` IsSubPathExpr *bool `json:"isSubPathExpr,omitempty"` - Iops *int32 `json:"iops,omitempty"` - Throughput *int32 `json:"throughput,omitempty"` - VolumeType string `json:"type,omitempty"` + // +kubebuilder:validation:Maximum=80000 + Iops *int32 `json:"iops,omitempty"` + // +kubebuilder:validation:Maximum=2000 + Throughput *int32 `json:"throughput,omitempty"` + VolumeType string `json:"type,omitempty"` } // AdditionalVolume specs additional optional volumes for statefulset diff --git a/ui/manifests/deployment.yaml b/ui/manifests/deployment.yaml index e19a850b8..eb48d9605 100644 --- a/ui/manifests/deployment.yaml +++ b/ui/manifests/deployment.yaml @@ -70,8 +70,8 @@ spec: "cost_memory": 0.014375, "free_iops": 3000, "free_throughput": 125, - "limit_iops": 16000, - "limit_throughput": 1000, + "limit_iops": 80000, + "limit_throughput": 2000, "postgresql_versions": [ "18", "17", diff --git a/ui/operator_ui/main.py b/ui/operator_ui/main.py index c91450d4c..469fe66ed 100644 --- a/ui/operator_ui/main.py +++ b/ui/operator_ui/main.py @@ -86,9 +86,9 @@ COST_ELB = float(getenv('COST_ELB', 0.03)) # per hour # maximum and limitation of IOPS and throughput FREE_IOPS = float(getenv('FREE_IOPS', 3000)) -LIMIT_IOPS = float(getenv('LIMIT_IOPS', 16000)) +LIMIT_IOPS = float(getenv('LIMIT_IOPS', 80000)) FREE_THROUGHPUT = float(getenv('FREE_THROUGHPUT', 125)) -LIMIT_THROUGHPUT = float(getenv('LIMIT_THROUGHPUT', 1000)) +LIMIT_THROUGHPUT = float(getenv('LIMIT_THROUGHPUT', 2000)) # get the default value of core and memory DEFAULT_MEMORY = getenv('DEFAULT_MEMORY', '300Mi') DEFAULT_MEMORY_LIMIT = getenv('DEFAULT_MEMORY_LIMIT', '300Mi') diff --git a/ui/run_local.sh b/ui/run_local.sh index 59729a92a..13d8f053a 100755 --- a/ui/run_local.sh +++ b/ui/run_local.sh @@ -28,8 +28,8 @@ default_operator_ui_config='{ "cost_memory": 0.014375, "free_iops": 3000, "free_throughput": 125, - "limit_iops": 16000, - "limit_throughput": 1000, + "limit_iops": 80000, + "limit_throughput": 2000, "postgresql_versions": [ "18", "17",