From 0c44a1353d636044b40956b82803af3fcf8879c2 Mon Sep 17 00:00:00 2001 From: matthias Date: Fri, 12 Dec 2025 12:00:52 +0100 Subject: [PATCH 1/3] add pullsecret --- setup/helm/operator/crds/postgresql.crd.yaml | 10 +- ...erator-service-account-rbac-openshift.yaml | 548 +++++++++--------- .../operator/templates/postgres-operator.yaml | 4 + .../postgresql-operator-configuration.yaml | 13 +- setup/helm/operator/values.yaml | 4 +- 5 files changed, 301 insertions(+), 278 deletions(-) diff --git a/setup/helm/operator/crds/postgresql.crd.yaml b/setup/helm/operator/crds/postgresql.crd.yaml index a51a4b2..d286e04 100644 --- a/setup/helm/operator/crds/postgresql.crd.yaml +++ b/setup/helm/operator/crds/postgresql.crd.yaml @@ -657,11 +657,19 @@ spec: type: object type: array tde: + type: object nullable: true properties: enable: type: boolean - type: object + keybits: + type: integer + format: int32 + default: 128 + enum: + - 128 + - 192 + - 256 teamId: type: string tls: diff --git a/setup/helm/operator/templates/operator-service-account-rbac-openshift.yaml b/setup/helm/operator/templates/operator-service-account-rbac-openshift.yaml index b1b7136..5ad846e 100644 --- a/setup/helm/operator/templates/operator-service-account-rbac-openshift.yaml +++ b/setup/helm/operator/templates/operator-service-account-rbac-openshift.yaml @@ -4,279 +4,279 @@ metadata: name: cpo-operator namespace: {{ .Release.Namespace }} ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRole -metadata: - name: cpo-operator -rules: -# all verbs allowed for custom operator resources -- apiGroups: - - cpo.opensource.cybertec.at - resources: - - postgresqls - - postgresqls/status - - operatorconfigurations - verbs: - - create - - delete - - deletecollection - - get - - list - - patch - - update - - watch -# operator only reads PostgresTeams -- apiGroups: - - cpo.opensource.cybertec.at - resources: - - postgresteams - verbs: - - get - - list - - watch -# to create or get/update CRDs when starting up -- apiGroups: - - apiextensions.k8s.io - resources: - - customresourcedefinitions - verbs: - - create - - get - - patch - - update -# to read configuration and manage ConfigMaps used by Patroni -- apiGroups: - - "" - resources: - - configmaps - verbs: - - create - - delete - - deletecollection - - get - - list - - patch - - update - - watch -# to send events to the CRs -- apiGroups: - - "" - resources: - - events - verbs: - - create - - get - - list - - patch - - update - - watch -# to CRUD secrets for database access -- apiGroups: - - "" - resources: - - secrets - verbs: - - create - - delete - - get - - update -# to check nodes for node readiness label -- apiGroups: - - "" - resources: - - nodes - verbs: - - get - - list - - watch -# to read or delete existing PVCs. Creation via StatefulSet -- apiGroups: - - "" - resources: - - persistentvolumeclaims - verbs: - - delete - - get - - list - - patch - - update - # to read existing PVs. Creation should be done via dynamic provisioning -- apiGroups: - - "" - resources: - - persistentvolumes - verbs: - - get - - list - - update # only for resizing AWS volumes -# to watch Spilo pods and do rolling updates. Creation via StatefulSet -- apiGroups: - - "" - resources: - - pods - verbs: - - delete - - get - - list - - patch - - update - - watch -# to resize the filesystem in Spilo pods when increasing volume size -- apiGroups: - - "" - resources: - - pods/exec - verbs: - - create -# to CRUD services to point to Postgres cluster instances -- apiGroups: - - "" - resources: - - services - verbs: - - create - - delete - - get - - patch - - update -# to CRUD the StatefulSet which controls the Postgres cluster instances -- apiGroups: - - apps - resources: - - statefulsets - - deployments - verbs: - - create - - delete - - get - - list - - patch -# to CRUD cron jobs for logical backups -- apiGroups: - - batch - resources: - - cronjobs - verbs: - - create - - delete - - get - - list - - patch - - update -# to get namespaces operator resources can run in -- apiGroups: - - "" - resources: - - namespaces - verbs: - - get -# to define PDBs. Update happens via delete/create -- apiGroups: - - policy - resources: - - poddisruptionbudgets - verbs: - - create - - delete - - get -# to create ServiceAccounts in each namespace the operator watches -- apiGroups: - - "" - resources: - - serviceaccounts - verbs: - - get - - create -# to create role bindings to the cpo-pod service account -- apiGroups: - - rbac.authorization.k8s.io - resources: - - rolebindings - verbs: - - get - - create -# to grant privilege to run privileged pods (not needed by default) -#- apiGroups: -# - extensions -# resources: -# - podsecuritypolicies -# resourceNames: -# - privileged -# verbs: -# - use +# --- +# apiVersion: rbac.authorization.k8s.io/v1 +# kind: ClusterRole +# metadata: +# name: cpo-operator +# rules: +# # all verbs allowed for custom operator resources +# - apiGroups: +# - cpo.opensource.cybertec.at +# resources: +# - postgresqls +# - postgresqls/status +# - operatorconfigurations +# verbs: +# - create +# - delete +# - deletecollection +# - get +# - list +# - patch +# - update +# - watch +# # operator only reads PostgresTeams +# - apiGroups: +# - cpo.opensource.cybertec.at +# resources: +# - postgresteams +# verbs: +# - get +# - list +# - watch +# # to create or get/update CRDs when starting up +# - apiGroups: +# - apiextensions.k8s.io +# resources: +# - customresourcedefinitions +# verbs: +# - create +# - get +# - patch +# - update +# # to read configuration and manage ConfigMaps used by Patroni +# - apiGroups: +# - "" +# resources: +# - configmaps +# verbs: +# - create +# - delete +# - deletecollection +# - get +# - list +# - patch +# - update +# - watch +# # to send events to the CRs +# - apiGroups: +# - "" +# resources: +# - events +# verbs: +# - create +# - get +# - list +# - patch +# - update +# - watch +# # to CRUD secrets for database access +# - apiGroups: +# - "" +# resources: +# - secrets +# verbs: +# - create +# - delete +# - get +# - update +# # to check nodes for node readiness label +# - apiGroups: +# - "" +# resources: +# - nodes +# verbs: +# - get +# - list +# - watch +# # to read or delete existing PVCs. Creation via StatefulSet +# - apiGroups: +# - "" +# resources: +# - persistentvolumeclaims +# verbs: +# - delete +# - get +# - list +# - patch +# - update +# # to read existing PVs. Creation should be done via dynamic provisioning +# - apiGroups: +# - "" +# resources: +# - persistentvolumes +# verbs: +# - get +# - list +# - update # only for resizing AWS volumes +# # to watch Spilo pods and do rolling updates. Creation via StatefulSet +# - apiGroups: +# - "" +# resources: +# - pods +# verbs: +# - delete +# - get +# - list +# - patch +# - update +# - watch +# # to resize the filesystem in Spilo pods when increasing volume size +# - apiGroups: +# - "" +# resources: +# - pods/exec +# verbs: +# - create +# # to CRUD services to point to Postgres cluster instances +# - apiGroups: +# - "" +# resources: +# - services +# verbs: +# - create +# - delete +# - get +# - patch +# - update +# # to CRUD the StatefulSet which controls the Postgres cluster instances +# - apiGroups: +# - apps +# resources: +# - statefulsets +# - deployments +# verbs: +# - create +# - delete +# - get +# - list +# - patch +# # to CRUD cron jobs for logical backups +# - apiGroups: +# - batch +# resources: +# - cronjobs +# verbs: +# - create +# - delete +# - get +# - list +# - patch +# - update +# # to get namespaces operator resources can run in +# - apiGroups: +# - "" +# resources: +# - namespaces +# verbs: +# - get +# # to define PDBs. Update happens via delete/create +# - apiGroups: +# - policy +# resources: +# - poddisruptionbudgets +# verbs: +# - create +# - delete +# - get +# # to create ServiceAccounts in each namespace the operator watches +# - apiGroups: +# - "" +# resources: +# - serviceaccounts +# verbs: +# - get +# - create +# # to create role bindings to the cpo-pod service account +# - apiGroups: +# - rbac.authorization.k8s.io +# resources: +# - rolebindings +# verbs: +# - get +# - create +# # to grant privilege to run privileged pods (not needed by default) +# #- apiGroups: +# # - extensions +# # resources: +# # - podsecuritypolicies +# # resourceNames: +# # - privileged +# # verbs: +# # - use ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRoleBinding -metadata: - name: cpo-operator -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: ClusterRole - name: cpo-operator -subjects: -- kind: ServiceAccount - name: cpo-operator - namespace: {{ .Release.Namespace }} +# --- +# apiVersion: rbac.authorization.k8s.io/v1 +# kind: ClusterRoleBinding +# metadata: +# name: cpo-operator +# roleRef: +# apiGroup: rbac.authorization.k8s.io +# kind: ClusterRole +# name: cpo-operator +# subjects: +# - kind: ServiceAccount +# name: cpo-operator +# namespace: {{ .Release.Namespace }} ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRole -metadata: - name: cpo-pod -rules: -# Patroni needs to watch and manage config maps -- apiGroups: - - "" - resources: - - configmaps - verbs: - - create - - delete - - deletecollection - - get - - list - - patch - - update - - watch -# Patroni needs to watch pods -- apiGroups: - - "" - resources: - - pods - verbs: - - get - - list - - patch - - update - - watch -- apiGroups: - - "" - resources: - - pods/exec - verbs: - - create -# to let Patroni create a headless service -- apiGroups: - - "" - resources: - - services - verbs: - - create -# For Backups -- apiGroups: - - "" - resources: - - pods/exec - verbs: - - create -# to grant privilege to run privileged pods (not needed by default) -#- apiGroups: -# - extensions -# resources: -# - podsecuritypolicies -# resourceNames: -# - privileged -# verbs: -# - use \ No newline at end of file +# --- +# apiVersion: rbac.authorization.k8s.io/v1 +# kind: ClusterRole +# metadata: +# name: cpo-pod +# rules: +# # Patroni needs to watch and manage config maps +# - apiGroups: +# - "" +# resources: +# - configmaps +# verbs: +# - create +# - delete +# - deletecollection +# - get +# - list +# - patch +# - update +# - watch +# # Patroni needs to watch pods +# - apiGroups: +# - "" +# resources: +# - pods +# verbs: +# - get +# - list +# - patch +# - update +# - watch +# - apiGroups: +# - "" +# resources: +# - pods/exec +# verbs: +# - create +# # to let Patroni create a headless service +# - apiGroups: +# - "" +# resources: +# - services +# verbs: +# - create +# # For Backups +# - apiGroups: +# - "" +# resources: +# - pods/exec +# verbs: +# - create +# # to grant privilege to run privileged pods (not needed by default) +# #- apiGroups: +# # - extensions +# # resources: +# # - podsecuritypolicies +# # resourceNames: +# # - privileged +# # verbs: +# # - use \ No newline at end of file diff --git a/setup/helm/operator/templates/postgres-operator.yaml b/setup/helm/operator/templates/postgres-operator.yaml index 1226cb5..dc07147 100644 --- a/setup/helm/operator/templates/postgres-operator.yaml +++ b/setup/helm/operator/templates/postgres-operator.yaml @@ -18,6 +18,10 @@ spec: cpo.cybertec.at/pod-type: postgres-operator spec: serviceAccountName: cpo-operator + {{- with .Values.imagePullSecretNames }} + imagePullSecrets: + {{- toYaml . | nindent 8 }} + {{- end }} containers: - name: postgres-operator image: {{ .Values.operatorSettings.operatorImage }} diff --git a/setup/helm/operator/templates/postgresql-operator-configuration.yaml b/setup/helm/operator/templates/postgresql-operator-configuration.yaml index 2cf7bcd..d3c77c2 100644 --- a/setup/helm/operator/templates/postgresql-operator-configuration.yaml +++ b/setup/helm/operator/templates/postgresql-operator-configuration.yaml @@ -96,8 +96,19 @@ configuration: pod_management_policy: "ordered_ready" # pod_priority_class_name: "postgres-pod-priority" pod_role_label: member.cpo.opensource.cybertec.at/role - # pod_service_account_definition: "" pod_service_account_name: cpo-pod + {{- if .Values.imagePullSecretNames }} + pod_service_account_definition: ' + { + "apiVersion": "v1", + "kind": "ServiceAccount", + "metadata": { + "name": "cpo-pod" + }, + "imagePullSecrets": {{ .Values.imagePullSecretNames | toJson }} + } + ' + {{- end }} # pod_service_account_role_binding_definition: "" pod_terminate_grace_period: 5m secret_name_template: "{username}.{cluster}.credentials.{tprkind}.{tprgroup}" diff --git a/setup/helm/operator/values.yaml b/setup/helm/operator/values.yaml index 3fae66b..8854a78 100644 --- a/setup/helm/operator/values.yaml +++ b/setup/helm/operator/values.yaml @@ -10,8 +10,8 @@ debug: true # imagePullSecretNames is a list of secret names to use for pulling controller images. # More info: https://kubernetes.io/docs/concepts/containers/images/#specifying-imagepullsecrets-on-a-pod -imagePullSecretNames: [] - +imagePullSecretNames: #[] + - name: harbor-pull-secret # Define the operator settings to add to the configmap operatorSettings: From 4dad48d56cd31e0f554ba94befee346d40ee936c Mon Sep 17 00:00:00 2001 From: matthias Date: Mon, 15 Dec 2025 20:43:07 +0100 Subject: [PATCH 2/3] Update new Images --- .../clone_with_pvc/postgres.yaml | 4 ++-- cluster-tutorials/clone_with_s3/postgres.yaml | 5 +++-- .../postgres.yaml | 2 +- .../ha-postgres.yaml | 2 +- .../loadbalancer-cluster/lb-postgres.yaml | 4 ++-- .../monitored_cluster/postgres.yaml | 4 ++-- cluster-tutorials/multisite/postgres.yaml | 2 +- .../pgbackrest_with_gcs/postgres.yaml | 4 ++-- .../pgbackrest_with_pvc/postgres.yaml | 4 ++-- .../pgbackrest_with_s3/postgres.yaml | 5 +++-- .../postgis-cluster/postgres.yaml | 2 +- .../prepared_databases/postgres.yaml | 2 +- cluster-tutorials/restore/postgres.yaml | 4 ++-- .../single-cluster/postgres.yaml | 2 +- .../standby-cluster/postgres.yaml | 2 +- docs/index.yaml | 19 ++++++++++++++---- docs/postgres-operator-0.9.0-1.tgz | Bin 0 -> 10783 bytes setup/helm/operator/Chart.yaml | 4 ++-- setup/helm/operator/values.yaml | 4 ++-- 19 files changed, 44 insertions(+), 31 deletions(-) create mode 100644 docs/postgres-operator-0.9.0-1.tgz diff --git a/cluster-tutorials/clone_with_pvc/postgres.yaml b/cluster-tutorials/clone_with_pvc/postgres.yaml index 19fb7cb..28a5e50 100644 --- a/cluster-tutorials/clone_with_pvc/postgres.yaml +++ b/cluster-tutorials/clone_with_pvc/postgres.yaml @@ -3,7 +3,7 @@ kind: postgresql metadata: name: cluster-1-clone spec: - dockerImage: 'containers.cybertec.at/cybertec-pg-container/postgres:rocky9-18.1-1' + dockerImage: 'containers.cybertec.at/cybertec-pg-container/postgres:rocky9-18.1-2' numberOfInstances: 1 postgresql: version: '18' @@ -24,7 +24,7 @@ spec: global: repo1-retention-full: '7' repo1-retention-full-type: count - image: 'containers.cybertec.at/cybertec-pg-container/pgbackrest:rocky9-18.1-1' + image: 'containers.cybertec.at/cybertec-pg-container/pgbackrest:rocky9-18.1-2' repos: - name: repo1 schedule: diff --git a/cluster-tutorials/clone_with_s3/postgres.yaml b/cluster-tutorials/clone_with_s3/postgres.yaml index 4f864ba..9189000 100644 --- a/cluster-tutorials/clone_with_s3/postgres.yaml +++ b/cluster-tutorials/clone_with_s3/postgres.yaml @@ -3,7 +3,7 @@ kind: postgresql metadata: name: cluster-1-clone spec: - dockerImage: 'containers.cybertec.at/cybertec-pg-container/postgres:rocky9-18.1-1' + dockerImage: 'containers.cybertec.at/cybertec-pg-container/postgres:rocky9-18.1-2' numberOfInstances: 1 postgresql: version: '18' @@ -25,7 +25,8 @@ spec: repo1-path: /YOUR_PATH_INSIDE_THE_BUCKET/repo1/ repo1-retention-full: '7' repo1-retention-full-type: count - image: 'containers.cybertec.at/cybertec-pg-container/pgbackrest:rocky9-18.1-1' + #repo1-s3-uri-style: path # If you need path-style for your s3-storage + image: 'containers.cybertec.at/cybertec-pg-container/pgbackrest:rocky9-18.1-2' repos: - endpoint: YOUR_S3_ENDPOINT name: repo1 diff --git a/cluster-tutorials/configure_users_and_databases/postgres.yaml b/cluster-tutorials/configure_users_and_databases/postgres.yaml index 0666dc8..2f7902a 100644 --- a/cluster-tutorials/configure_users_and_databases/postgres.yaml +++ b/cluster-tutorials/configure_users_and_databases/postgres.yaml @@ -3,7 +3,7 @@ kind: postgresql metadata: name: cluster-1 spec: - dockerImage: 'containers.cybertec.at/cybertec-pg-container/postgres:rocky9-18.1-1' + dockerImage: 'containers.cybertec.at/cybertec-pg-container/postgres:rocky9-18.1-2' numberOfInstances: 1 postgresql: version: '18' diff --git a/cluster-tutorials/high-availability-cluster/ha-postgres.yaml b/cluster-tutorials/high-availability-cluster/ha-postgres.yaml index 2e2af33..5f76d20 100644 --- a/cluster-tutorials/high-availability-cluster/ha-postgres.yaml +++ b/cluster-tutorials/high-availability-cluster/ha-postgres.yaml @@ -3,7 +3,7 @@ kind: postgresql metadata: name: ha-cluster-1 spec: - dockerImage: 'containers.cybertec.at/cybertec-pg-container/postgres:rocky9-18.1-1' + dockerImage: 'containers.cybertec.at/cybertec-pg-container/postgres:rocky9-18.1-2' numberOfInstances: 2 postgresql: version: '18' diff --git a/cluster-tutorials/loadbalancer-cluster/lb-postgres.yaml b/cluster-tutorials/loadbalancer-cluster/lb-postgres.yaml index 3228e8b..e0b1361 100644 --- a/cluster-tutorials/loadbalancer-cluster/lb-postgres.yaml +++ b/cluster-tutorials/loadbalancer-cluster/lb-postgres.yaml @@ -3,7 +3,7 @@ kind: postgresql metadata: name: ha-cluster-1 spec: - dockerImage: 'containers.cybertec.at/cybertec-pg-container/postgres:rocky9-18.1-1' + dockerImage: 'containers.cybertec.at/cybertec-pg-container/postgres:rocky9-18.1-2' numberOfInstances: 1 postgresql: version: '18' @@ -15,7 +15,7 @@ spec: cpu: 500m memory: 500Mi connectionPooler: - dockerImage: 'containers.cybertec.at/cybertec-pg-container/pgbouncer:rocky9-1.25.0-1' + dockerImage: 'containers.cybertec.at/cybertec-pg-container/pgbouncer:rocky9-1.25.0-2' mode: transaction numberOfInstances: 2 resources: diff --git a/cluster-tutorials/monitored_cluster/postgres.yaml b/cluster-tutorials/monitored_cluster/postgres.yaml index 2978d46..4dc1ca1 100644 --- a/cluster-tutorials/monitored_cluster/postgres.yaml +++ b/cluster-tutorials/monitored_cluster/postgres.yaml @@ -3,7 +3,7 @@ kind: postgresql metadata: name: cluster-1 spec: - dockerImage: 'containers.cybertec.at/cybertec-pg-container/postgres:rocky9-18.1-1' + dockerImage: 'containers.cybertec.at/cybertec-pg-container/postgres:rocky9-18.1-2' numberOfInstances: 1 postgresql: version: '18' @@ -19,4 +19,4 @@ spec: size: 5Gi #storageClass: default-provisioner monitor: - image: 'containers.cybertec.at/cybertec-pg-container/exporter:rocky9-18.1-1' + image: 'containers.cybertec.at/cybertec-pg-container/exporter:rocky9-18.1-2' diff --git a/cluster-tutorials/multisite/postgres.yaml b/cluster-tutorials/multisite/postgres.yaml index 5be027c..d343612 100644 --- a/cluster-tutorials/multisite/postgres.yaml +++ b/cluster-tutorials/multisite/postgres.yaml @@ -7,7 +7,7 @@ metadata: app.kubernetes.io/name: postgres-cluster app.kubernetes.io/instance: multisite-cluster spec: - dockerImage: containers.cybertec.at/cybertec-pg-container/postgres:rocky9-18.1-1' + dockerImage: containers.cybertec.at/cybertec-pg-container/postgres:rocky9-18.1-2' numberOfInstances: 1 postgresql: version: '18' diff --git a/cluster-tutorials/pgbackrest_with_gcs/postgres.yaml b/cluster-tutorials/pgbackrest_with_gcs/postgres.yaml index c99a56e..ebac723 100644 --- a/cluster-tutorials/pgbackrest_with_gcs/postgres.yaml +++ b/cluster-tutorials/pgbackrest_with_gcs/postgres.yaml @@ -3,7 +3,7 @@ kind: postgresql metadata: name: cluster-1 spec: - dockerImage: 'containers.cybertec.at/cybertec-pg-container/postgres:rocky9-18.1-1' + dockerImage: 'containers.cybertec.at/cybertec-pg-container/postgres:rocky9-18.1-2' numberOfInstances: 1 postgresql: version: '18' @@ -25,7 +25,7 @@ spec: repo1-path: /YOUR_PATH_INSIDE_THE_BUCKET/repo1/ repo1-retention-full: '7' repo1-retention-full-type: count - image: 'containers.cybertec.at/cybertec-pg-container/pgbackrest:rocky9-18.1-1' + image: 'containers.cybertec.at/cybertec-pg-container/pgbackrest:rocky9-18.1-2' repos: - name: repo1 resource: cpo-bucket-1 diff --git a/cluster-tutorials/pgbackrest_with_pvc/postgres.yaml b/cluster-tutorials/pgbackrest_with_pvc/postgres.yaml index 3def122..54dfa61 100644 --- a/cluster-tutorials/pgbackrest_with_pvc/postgres.yaml +++ b/cluster-tutorials/pgbackrest_with_pvc/postgres.yaml @@ -3,7 +3,7 @@ kind: postgresql metadata: name: cluster-pvc-1 spec: - dockerImage: 'containers.cybertec.at/cybertec-pg-container/postgres:rocky9-18.1-1' + dockerImage: 'containers.cybertec.at/cybertec-pg-container/postgres:rocky9-18.1-2' numberOfInstances: 1 postgresql: version: '18' @@ -24,7 +24,7 @@ spec: global: repo1-retention-full: '7' repo1-retention-full-type: count - image: 'containers.cybertec.at/cybertec-pg-container/pgbackrest:rocky9-18.1-1' + image: 'containers.cybertec.at/cybertec-pg-container/pgbackrest:rocky9-18.1-2' repos: - name: repo1 schedule: diff --git a/cluster-tutorials/pgbackrest_with_s3/postgres.yaml b/cluster-tutorials/pgbackrest_with_s3/postgres.yaml index 23ef8cc..0f78e87 100644 --- a/cluster-tutorials/pgbackrest_with_s3/postgres.yaml +++ b/cluster-tutorials/pgbackrest_with_s3/postgres.yaml @@ -3,7 +3,7 @@ kind: postgresql metadata: name: cluster-1 spec: - dockerImage: 'containers.cybertec.at/cybertec-pg-container/postgres:rocky9-18.1-1' + dockerImage: 'containers.cybertec.at/cybertec-pg-container/postgres:rocky9-18.1-2' numberOfInstances: 1 postgresql: version: '18' @@ -25,7 +25,8 @@ spec: repo1-path: /YOUR_PATH_INSIDE_THE_BUCKET/repo1/ repo1-retention-full: '7' repo1-retention-full-type: count - image: 'containers.cybertec.at/cybertec-pg-container/pgbackrest:rocky9-18.1-1' + #repo1-s3-uri-style: path # If you need path-style for your s3-storage + image: 'containers.cybertec.at/cybertec-pg-container/pgbackrest:rocky9-18.1-2' repos: - endpoint: YOUR_S3_ENDPOINT name: repo1 diff --git a/cluster-tutorials/postgis-cluster/postgres.yaml b/cluster-tutorials/postgis-cluster/postgres.yaml index a93765a..9778ccb 100644 --- a/cluster-tutorials/postgis-cluster/postgres.yaml +++ b/cluster-tutorials/postgis-cluster/postgres.yaml @@ -3,7 +3,7 @@ kind: postgresql metadata: name: cluster-1 spec: - dockerImage: 'containers.cybertec.at/cybertec-pg-container/postgres-gis:rocky9-18.1-35-1' + dockerImage: 'containers.cybertec.at/cybertec-pg-container/postgres-gis:rocky9-18.1-36-2' numberOfInstances: 1 postgresql: version: '17' diff --git a/cluster-tutorials/prepared_databases/postgres.yaml b/cluster-tutorials/prepared_databases/postgres.yaml index 6cefc1f..8de5fb6 100644 --- a/cluster-tutorials/prepared_databases/postgres.yaml +++ b/cluster-tutorials/prepared_databases/postgres.yaml @@ -3,7 +3,7 @@ kind: postgresql metadata: name: cluster-1 spec: - dockerImage: 'containers.cybertec.at/cybertec-pg-container/postgres:rocky9-18.1-1' + dockerImage: 'containers.cybertec.at/cybertec-pg-container/postgres:rocky9-18.1-2' numberOfInstances: 1 postgresql: version: '18' diff --git a/cluster-tutorials/restore/postgres.yaml b/cluster-tutorials/restore/postgres.yaml index bb971e4..2c8d39f 100644 --- a/cluster-tutorials/restore/postgres.yaml +++ b/cluster-tutorials/restore/postgres.yaml @@ -3,7 +3,7 @@ kind: postgresql metadata: name: cluster-1 spec: - dockerImage: 'containers.cybertec.at/cybertec-pg-container/postgres:rocky9-18.1-1' + dockerImage: 'containers.cybertec.at/cybertec-pg-container/postgres:rocky9-18.1-2' numberOfInstances: 1 postgresql: version: '18' @@ -24,7 +24,7 @@ spec: global: repo1-retention-full: '7' repo1-retention-full-type: count - image: 'containers.cybertec.at/cybertec-pg-container/pgbackrest:rocky9-18.1-1' + image: 'containers.cybertec.at/cybertec-pg-container/pgbackrest:rocky9-18.1-2' repos: - name: repo1 schedule: diff --git a/cluster-tutorials/single-cluster/postgres.yaml b/cluster-tutorials/single-cluster/postgres.yaml index 73a688e..98b98d5 100644 --- a/cluster-tutorials/single-cluster/postgres.yaml +++ b/cluster-tutorials/single-cluster/postgres.yaml @@ -3,7 +3,7 @@ kind: postgresql metadata: name: cluster-1 spec: - dockerImage: 'containers.cybertec.at/cybertec-pg-container/postgres:rocky9-18.1-1' + dockerImage: 'containers.cybertec.at/cybertec-pg-container/postgres:rocky9-18.1-2' numberOfInstances: 1 postgresql: version: '18' diff --git a/cluster-tutorials/standby-cluster/postgres.yaml b/cluster-tutorials/standby-cluster/postgres.yaml index b0534c9..5408493 100644 --- a/cluster-tutorials/standby-cluster/postgres.yaml +++ b/cluster-tutorials/standby-cluster/postgres.yaml @@ -6,7 +6,7 @@ spec: standby: standby_host: "cluster-1.cpo" standby_port: "5432" - dockerImage: 'containers.cybertec.at/cybertec-pg-container/postgres:rocky9-18.1-1' + dockerImage: 'containers.cybertec.at/cybertec-pg-container/postgres:rocky9-18.1-2' numberOfInstances: 1 postgresql: version: '18' diff --git a/docs/index.yaml b/docs/index.yaml index 62ddb70..3000f30 100644 --- a/docs/index.yaml +++ b/docs/index.yaml @@ -3,7 +3,7 @@ entries: postgres-operator: - apiVersion: v2 appVersion: 0.9.0 - created: "2025-12-03T19:52:48.441697621+01:00" + created: "2025-12-15T20:42:56.222127537+01:00" description: Helm-Chart for setting up an instance of CYBERTEC's Postgres operator (CPO). digest: 0f4b04aafe7c4bea40082510fb15e712b0f5438653c20f0d811436f8b7e6c1a9 @@ -12,9 +12,20 @@ entries: urls: - https://cybertec-postgresql.github.io/CYBERTEC-operator-tutorials/postgres-operator-0.9.0.tgz version: 0.9.0 + - apiVersion: v2 + appVersion: 0.9.0-1 + created: "2025-12-15T20:42:56.221479605+01:00" + description: Helm-Chart for setting up an instance of CYBERTEC's Postgres operator + (CPO). + digest: 0c302fce4342fffe600699918969e975c90baaa94ad101c457dfa4aea56dd929 + name: postgres-operator + type: application + urls: + - https://cybertec-postgresql.github.io/CYBERTEC-operator-tutorials/postgres-operator-0.9.0-1.tgz + version: 0.9.0-1 - apiVersion: v2 appVersion: 0.8.3 - created: "2025-12-03T19:52:48.44126257+01:00" + created: "2025-12-15T20:42:56.221051887+01:00" description: Helm-Chart for setting up an instance of CYBERTEC's Postgres operator (CPO). digest: c63960331058590711189c1a4487aca03c1ba0cec9e162e485b8646fce5d5392 @@ -25,7 +36,7 @@ entries: version: 0.8.3 - apiVersion: v2 appVersion: 0.8.2 - created: "2025-12-03T19:52:48.440869914+01:00" + created: "2025-12-15T20:42:56.220475544+01:00" description: Helm-Chart for setting up an instance of CYBERTEC's Postgres operator (CPO). digest: 403e5e1156250f663064db02ccf09e74be0dccc025556a02e502e349222c1a92 @@ -34,4 +45,4 @@ entries: urls: - https://cybertec-postgresql.github.io/CYBERTEC-operator-tutorials/postgres-operator-0.8.2.tgz version: 0.8.2 -generated: "2025-12-03T19:52:48.440329121+01:00" +generated: "2025-12-15T20:42:56.219691139+01:00" diff --git a/docs/postgres-operator-0.9.0-1.tgz b/docs/postgres-operator-0.9.0-1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..ccbb8c1a88ade2cace7bf7da6e5546e24154f2a8 GIT binary patch literal 10783 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 d53+vyzJ1@mZ{Gub|2F^t|NoKpFZ=*50RX2A Date: Mon, 15 Dec 2025 20:43:52 +0100 Subject: [PATCH 3/3] Update new Images --- docs/index.yaml | 12 ++++++------ docs/postgres-operator-0.9.0-1.tgz | Bin 10783 -> 10783 bytes setup/helm/operator/values.yaml | 4 ++-- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/docs/index.yaml b/docs/index.yaml index 3000f30..0c8f519 100644 --- a/docs/index.yaml +++ b/docs/index.yaml @@ -3,7 +3,7 @@ entries: postgres-operator: - apiVersion: v2 appVersion: 0.9.0 - created: "2025-12-15T20:42:56.222127537+01:00" + created: "2025-12-15T20:43:44.552251792+01:00" description: Helm-Chart for setting up an instance of CYBERTEC's Postgres operator (CPO). digest: 0f4b04aafe7c4bea40082510fb15e712b0f5438653c20f0d811436f8b7e6c1a9 @@ -14,10 +14,10 @@ entries: version: 0.9.0 - apiVersion: v2 appVersion: 0.9.0-1 - created: "2025-12-15T20:42:56.221479605+01:00" + created: "2025-12-15T20:43:44.551906839+01:00" description: Helm-Chart for setting up an instance of CYBERTEC's Postgres operator (CPO). - digest: 0c302fce4342fffe600699918969e975c90baaa94ad101c457dfa4aea56dd929 + digest: aea9683bed5c03bc6fa2c02c22756709b1148e9de768cbd0a527615030cd00fd name: postgres-operator type: application urls: @@ -25,7 +25,7 @@ entries: version: 0.9.0-1 - apiVersion: v2 appVersion: 0.8.3 - created: "2025-12-15T20:42:56.221051887+01:00" + created: "2025-12-15T20:43:44.551513204+01:00" description: Helm-Chart for setting up an instance of CYBERTEC's Postgres operator (CPO). digest: c63960331058590711189c1a4487aca03c1ba0cec9e162e485b8646fce5d5392 @@ -36,7 +36,7 @@ entries: version: 0.8.3 - apiVersion: v2 appVersion: 0.8.2 - created: "2025-12-15T20:42:56.220475544+01:00" + created: "2025-12-15T20:43:44.548656632+01:00" description: Helm-Chart for setting up an instance of CYBERTEC's Postgres operator (CPO). digest: 403e5e1156250f663064db02ccf09e74be0dccc025556a02e502e349222c1a92 @@ -45,4 +45,4 @@ entries: urls: - https://cybertec-postgresql.github.io/CYBERTEC-operator-tutorials/postgres-operator-0.8.2.tgz version: 0.8.2 -generated: "2025-12-15T20:42:56.219691139+01:00" +generated: "2025-12-15T20:43:44.548080359+01:00" diff --git a/docs/postgres-operator-0.9.0-1.tgz b/docs/postgres-operator-0.9.0-1.tgz index ccbb8c1a88ade2cace7bf7da6e5546e24154f2a8..acc6fbe789ed6b90bb1de895b63475113f4e0869 100644 GIT binary patch delta 10686 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 delta 10686 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