From f8d6020c650746a2ec2598ba72bc9fef5c622f2d Mon Sep 17 00:00:00 2001 From: gitea-bot Date: Wed, 1 Apr 2026 21:26:05 +0000 Subject: [PATCH] chore: Update manifests after change --- .../ClusterRole-cloudnative-pg-edit.yaml | 4 +- .../ClusterRole-cloudnative-pg-view.yaml | 4 +- .../ClusterRole-cloudnative-pg.yaml | 4 +- .../ClusterRoleBinding-cloudnative-pg.yaml | 4 +- ...figMap-cnpg-controller-manager-config.yaml | 4 +- .../ConfigMap-cnpg-default-monitoring.yaml | 4 +- ...Definition-backups.postgresql.cnpg.io.yaml | 14 +- ...usterimagecatalogs.postgresql.cnpg.io.yaml | 107 ++++++- ...efinition-clusters.postgresql.cnpg.io.yaml | 275 +++++++++++++++++- ...finition-databases.postgresql.cnpg.io.yaml | 2 +- ...on-failoverquorums.postgresql.cnpg.io.yaml | 2 +- ...tion-imagecatalogs.postgresql.cnpg.io.yaml | 107 ++++++- ...Definition-poolers.postgresql.cnpg.io.yaml | 15 +- ...ition-publications.postgresql.cnpg.io.yaml | 2 +- ...n-scheduledbackups.postgresql.cnpg.io.yaml | 2 +- ...tion-subscriptions.postgresql.cnpg.io.yaml | 2 +- .../Deployment-cloudnative-pg.yaml | 14 +- ...n-cnpg-mutating-webhook-configuration.yaml | 4 +- .../PodMonitor-cloudnative-pg.yaml | 4 +- .../Service-cnpg-webhook-service.yaml | 4 +- .../ServiceAccount-cloudnative-pg.yaml | 4 +- ...cnpg-validating-webhook-configuration.yaml | 4 +- 22 files changed, 539 insertions(+), 47 deletions(-) diff --git a/clusters/cl01tl/manifests/cloudnative-pg/ClusterRole-cloudnative-pg-edit.yaml b/clusters/cl01tl/manifests/cloudnative-pg/ClusterRole-cloudnative-pg-edit.yaml index dd4ffbbf1..5d6219d1a 100644 --- a/clusters/cl01tl/manifests/cloudnative-pg/ClusterRole-cloudnative-pg-edit.yaml +++ b/clusters/cl01tl/manifests/cloudnative-pg/ClusterRole-cloudnative-pg-edit.yaml @@ -3,10 +3,10 @@ kind: ClusterRole metadata: name: cloudnative-pg-edit labels: - helm.sh/chart: cloudnative-pg-0.27.1 + helm.sh/chart: cloudnative-pg-0.28.0 app.kubernetes.io/name: cloudnative-pg app.kubernetes.io/instance: cloudnative-pg - app.kubernetes.io/version: "1.28.1" + app.kubernetes.io/version: "1.29.0" app.kubernetes.io/managed-by: Helm rules: - apiGroups: diff --git a/clusters/cl01tl/manifests/cloudnative-pg/ClusterRole-cloudnative-pg-view.yaml b/clusters/cl01tl/manifests/cloudnative-pg/ClusterRole-cloudnative-pg-view.yaml index 3aba49527..37b93eb0e 100644 --- a/clusters/cl01tl/manifests/cloudnative-pg/ClusterRole-cloudnative-pg-view.yaml +++ b/clusters/cl01tl/manifests/cloudnative-pg/ClusterRole-cloudnative-pg-view.yaml @@ -3,10 +3,10 @@ kind: ClusterRole metadata: name: cloudnative-pg-view labels: - helm.sh/chart: cloudnative-pg-0.27.1 + helm.sh/chart: cloudnative-pg-0.28.0 app.kubernetes.io/name: cloudnative-pg app.kubernetes.io/instance: cloudnative-pg - app.kubernetes.io/version: "1.28.1" + app.kubernetes.io/version: "1.29.0" app.kubernetes.io/managed-by: Helm rules: - apiGroups: diff --git a/clusters/cl01tl/manifests/cloudnative-pg/ClusterRole-cloudnative-pg.yaml b/clusters/cl01tl/manifests/cloudnative-pg/ClusterRole-cloudnative-pg.yaml index 9527b795e..ca8d47b0c 100644 --- a/clusters/cl01tl/manifests/cloudnative-pg/ClusterRole-cloudnative-pg.yaml +++ b/clusters/cl01tl/manifests/cloudnative-pg/ClusterRole-cloudnative-pg.yaml @@ -3,10 +3,10 @@ kind: ClusterRole metadata: name: cloudnative-pg labels: - helm.sh/chart: cloudnative-pg-0.27.1 + helm.sh/chart: cloudnative-pg-0.28.0 app.kubernetes.io/name: cloudnative-pg app.kubernetes.io/instance: cloudnative-pg - app.kubernetes.io/version: "1.28.1" + app.kubernetes.io/version: "1.29.0" app.kubernetes.io/managed-by: Helm rules: - apiGroups: diff --git a/clusters/cl01tl/manifests/cloudnative-pg/ClusterRoleBinding-cloudnative-pg.yaml b/clusters/cl01tl/manifests/cloudnative-pg/ClusterRoleBinding-cloudnative-pg.yaml index bebd852f3..653a9074d 100644 --- a/clusters/cl01tl/manifests/cloudnative-pg/ClusterRoleBinding-cloudnative-pg.yaml +++ b/clusters/cl01tl/manifests/cloudnative-pg/ClusterRoleBinding-cloudnative-pg.yaml @@ -3,10 +3,10 @@ kind: ClusterRoleBinding metadata: name: cloudnative-pg labels: - helm.sh/chart: cloudnative-pg-0.27.1 + helm.sh/chart: cloudnative-pg-0.28.0 app.kubernetes.io/name: cloudnative-pg app.kubernetes.io/instance: cloudnative-pg - app.kubernetes.io/version: "1.28.1" + app.kubernetes.io/version: "1.29.0" app.kubernetes.io/managed-by: Helm roleRef: apiGroup: rbac.authorization.k8s.io diff --git a/clusters/cl01tl/manifests/cloudnative-pg/ConfigMap-cnpg-controller-manager-config.yaml b/clusters/cl01tl/manifests/cloudnative-pg/ConfigMap-cnpg-controller-manager-config.yaml index 88539d8ba..82932f4e2 100644 --- a/clusters/cl01tl/manifests/cloudnative-pg/ConfigMap-cnpg-controller-manager-config.yaml +++ b/clusters/cl01tl/manifests/cloudnative-pg/ConfigMap-cnpg-controller-manager-config.yaml @@ -4,9 +4,9 @@ metadata: name: cnpg-controller-manager-config namespace: cloudnative-pg labels: - helm.sh/chart: cloudnative-pg-0.27.1 + helm.sh/chart: cloudnative-pg-0.28.0 app.kubernetes.io/name: cloudnative-pg app.kubernetes.io/instance: cloudnative-pg - app.kubernetes.io/version: "1.28.1" + app.kubernetes.io/version: "1.29.0" app.kubernetes.io/managed-by: Helm data: {} diff --git a/clusters/cl01tl/manifests/cloudnative-pg/ConfigMap-cnpg-default-monitoring.yaml b/clusters/cl01tl/manifests/cloudnative-pg/ConfigMap-cnpg-default-monitoring.yaml index 66823f18f..55d99d6ae 100644 --- a/clusters/cl01tl/manifests/cloudnative-pg/ConfigMap-cnpg-default-monitoring.yaml +++ b/clusters/cl01tl/manifests/cloudnative-pg/ConfigMap-cnpg-default-monitoring.yaml @@ -4,10 +4,10 @@ metadata: name: cnpg-default-monitoring namespace: cloudnative-pg labels: - helm.sh/chart: cloudnative-pg-0.27.1 + helm.sh/chart: cloudnative-pg-0.28.0 app.kubernetes.io/name: cloudnative-pg app.kubernetes.io/instance: cloudnative-pg - app.kubernetes.io/version: "1.28.1" + app.kubernetes.io/version: "1.29.0" app.kubernetes.io/managed-by: Helm cnpg.io/reload: "" data: diff --git a/clusters/cl01tl/manifests/cloudnative-pg/CustomResourceDefinition-backups.postgresql.cnpg.io.yaml b/clusters/cl01tl/manifests/cloudnative-pg/CustomResourceDefinition-backups.postgresql.cnpg.io.yaml index 569d677be..3d02008ab 100644 --- a/clusters/cl01tl/manifests/cloudnative-pg/CustomResourceDefinition-backups.postgresql.cnpg.io.yaml +++ b/clusters/cl01tl/manifests/cloudnative-pg/CustomResourceDefinition-backups.postgresql.cnpg.io.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.20.0 + controller-gen.kubebuilder.io/version: v0.20.1 helm.sh/resource-policy: keep name: backups.postgresql.cnpg.io spec: @@ -336,6 +336,14 @@ spec: type: string description: A map containing the plugin metadata type: object + reconciliationStartedAt: + description: When the backup process was started by the operator + format: date-time + type: string + reconciliationTerminatedAt: + description: When the reconciliation was terminated by the operator (either successfully or not) + format: date-time + type: string s3Credentials: description: The credentials to use to upload data to S3 properties: @@ -426,11 +434,11 @@ spec: type: array type: object startedAt: - description: When the backup was started + description: When the backup execution was started by the backup tool format: date-time type: string stoppedAt: - description: When the backup was terminated + description: When the backup execution was terminated by the backup tool format: date-time type: string tablespaceMapFile: diff --git a/clusters/cl01tl/manifests/cloudnative-pg/CustomResourceDefinition-clusterimagecatalogs.postgresql.cnpg.io.yaml b/clusters/cl01tl/manifests/cloudnative-pg/CustomResourceDefinition-clusterimagecatalogs.postgresql.cnpg.io.yaml index 6fb9038ab..83a6c7a61 100644 --- a/clusters/cl01tl/manifests/cloudnative-pg/CustomResourceDefinition-clusterimagecatalogs.postgresql.cnpg.io.yaml +++ b/clusters/cl01tl/manifests/cloudnative-pg/CustomResourceDefinition-clusterimagecatalogs.postgresql.cnpg.io.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.20.0 + controller-gen.kubebuilder.io/version: v0.20.1 helm.sh/resource-policy: keep name: clusterimagecatalogs.postgresql.cnpg.io spec: @@ -50,6 +50,111 @@ spec: items: description: CatalogImage defines the image and major version properties: + extensions: + description: The configuration of the extensions to be added + items: + description: |- + ExtensionConfiguration is the configuration used to add + PostgreSQL extensions to the Cluster. + properties: + bin_path: + description: |- + A list of directories within the image to be appended to the + PostgreSQL process's `PATH` environment variable. + items: + type: string + type: array + dynamic_library_path: + description: |- + The list of directories inside the image which should be added to dynamic_library_path. + If not defined, defaults to "/lib". + items: + type: string + type: array + env: + description: |- + Env is a list of custom environment variables to be set in the + PostgreSQL process for this extension. It is the responsibility of the + cluster administrator to ensure the variables are correct for the + specific extension. Note that changes to these variables require + a manual cluster restart to take effect. + items: + description: |- + ExtensionEnvVar defines an environment variable for a specific extension + image volume. + properties: + name: + description: |- + Name of the environment variable to be injected into the + PostgreSQL process. + minLength: 1 + pattern: ^[a-zA-Z_][a-zA-Z0-9_]*$ + type: string + value: + description: |- + Value of the environment variable. CloudNativePG performs a direct + replacement of this value, with support for placeholder expansion. + The ${`image_root`} placeholder resolves to the absolute mount path + of the extension's volume (e.g., `/extensions/my-extension`). This + is particularly useful for allowing applications or libraries to + locate specific directories within the mounted image. + Unrecognized placeholders are rejected. To include a literal ${...} + in the value, escape it as $${...}. + minLength: 1 + type: string + required: + - name + - value + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + extension_control_path: + description: |- + The list of directories inside the image which should be added to extension_control_path. + If not defined, defaults to "/share". + items: + type: string + type: array + image: + description: The image containing the extension. + properties: + pullPolicy: + description: |- + Policy for pulling OCI objects. Possible values are: + Always: the kubelet always attempts to pull the reference. Container creation will fail If the pull fails. + Never: the kubelet never pulls the reference and only uses a local image or artifact. Container creation will fail if the reference isn't present. + IfNotPresent: the kubelet pulls if the reference isn't already present on disk. Container creation will fail if the reference isn't present and the pull fails. + Defaults to Always if :latest tag is specified, or IfNotPresent otherwise. + type: string + reference: + description: |- + Required: Image or artifact reference to be used. + Behaves in the same way as pod.spec.containers[*].image. + Pull secrets will be assembled in the same way as for the container image by looking up node credentials, SA image pull secrets, and pod spec image pull secrets. + More info: https://kubernetes.io/docs/concepts/containers/images + This field is optional to allow higher level config management to default or override + container images in workload controllers like Deployments and StatefulSets. + type: string + type: object + ld_library_path: + description: The list of directories inside the image which should be added to ld_library_path. + items: + type: string + type: array + name: + description: The name of the extension, required + minLength: 1 + pattern: ^[a-z0-9]([-a-z0-9_]*[a-z0-9])?$ + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map image: description: The image reference type: string diff --git a/clusters/cl01tl/manifests/cloudnative-pg/CustomResourceDefinition-clusters.postgresql.cnpg.io.yaml b/clusters/cl01tl/manifests/cloudnative-pg/CustomResourceDefinition-clusters.postgresql.cnpg.io.yaml index fed2aa858..c78af43f1 100644 --- a/clusters/cl01tl/manifests/cloudnative-pg/CustomResourceDefinition-clusters.postgresql.cnpg.io.yaml +++ b/clusters/cl01tl/manifests/cloudnative-pg/CustomResourceDefinition-clusters.postgresql.cnpg.io.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.20.0 + controller-gen.kubebuilder.io/version: v0.20.1 helm.sh/resource-policy: keep name: clusters.postgresql.cnpg.io spec: @@ -4207,6 +4207,80 @@ spec: type: string type: object type: object + podSelectorRefs: + description: |- + PodSelectorRefs defines named pod label selectors that can be referenced + in pg_hba rules using the ${podselector:NAME} syntax in the address field. + The operator resolves matching pod IPs and the instance manager expands + pg_hba lines accordingly. Only pods in the Cluster's own namespace are considered. + items: + description: |- + PodSelectorRef defines a named pod label selector for use in pg_hba rules. + Pods matching the selector in the Cluster's namespace will have their IPs + resolved and made available for pg_hba address expansion via the + `${podselector:NAME}` syntax. + properties: + name: + description: |- + Name is the identifier used to reference this selector in pg_hba rules + via the ${podselector:NAME} syntax in the address field. + minLength: 1 + pattern: ^[a-z]([a-z0-9_-]*[a-z0-9])?$ + type: string + selector: + description: |- + Selector is a label selector that identifies the pods whose IPs + should be resolved. Only pods in the Cluster's namespace are considered. + properties: + matchExpressions: + description: matchExpressions is a list of label selector requirements. The requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that the selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + required: + - name + - selector + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map postgresGID: default: 26 description: The GID of the `postgres` user inside the image, defaults to `26` @@ -4234,6 +4308,13 @@ spec: ExtensionConfiguration is the configuration used to add PostgreSQL extensions to the Cluster. properties: + bin_path: + description: |- + A list of directories within the image to be appended to the + PostgreSQL process's `PATH` environment variable. + items: + type: string + type: array dynamic_library_path: description: |- The list of directories inside the image which should be added to dynamic_library_path. @@ -4241,6 +4322,45 @@ spec: items: type: string type: array + env: + description: |- + Env is a list of custom environment variables to be set in the + PostgreSQL process for this extension. It is the responsibility of the + cluster administrator to ensure the variables are correct for the + specific extension. Note that changes to these variables require + a manual cluster restart to take effect. + items: + description: |- + ExtensionEnvVar defines an environment variable for a specific extension + image volume. + properties: + name: + description: |- + Name of the environment variable to be injected into the + PostgreSQL process. + minLength: 1 + pattern: ^[a-zA-Z_][a-zA-Z0-9_]*$ + type: string + value: + description: |- + Value of the environment variable. CloudNativePG performs a direct + replacement of this value, with support for placeholder expansion. + The ${`image_root`} placeholder resolves to the absolute mount path + of the extension's volume (e.g., `/extensions/my-extension`). This + is particularly useful for allowing applications or libraries to + locate specific directories within the mounted image. + Unrecognized placeholders are rejected. To include a literal ${...} + in the value, escape it as $${...}. + minLength: 1 + type: string + required: + - name + - value + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map extension_control_path: description: |- The list of directories inside the image which should be added to extension_control_path. @@ -4249,7 +4369,7 @@ spec: type: string type: array image: - description: The image containing the extension, required + description: The image containing the extension. properties: pullPolicy: description: |- @@ -4269,9 +4389,6 @@ spec: container images in workload controllers like Deployments and StatefulSets. type: string type: object - x-kubernetes-validations: - - message: An image reference is required - rule: has(self.reference) ld_library_path: description: The list of directories inside the image which should be added to ld_library_path. items: @@ -4283,10 +4400,12 @@ spec: pattern: ^[a-z0-9]([-a-z0-9_]*[a-z0-9])?$ type: string required: - - image - name type: object type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map ldap: description: Options to specify LDAP configuration properties: @@ -4362,7 +4481,9 @@ spec: pg_hba: description: |- PostgreSQL Host Based Authentication rules (lines to be appended - to the pg_hba.conf file) + to the pg_hba.conf file). + Use the ${podselector:NAME} syntax to reference a pod selector; + the rule will be expanded for each Pod IP matching that selector. items: type: string type: array @@ -5526,6 +5647,20 @@ spec: type: string type: object type: object + serviceAccountName: + description: |- + Name of an existing ServiceAccount in the same namespace to use for the cluster. + When specified, the operator will not create a new ServiceAccount + but will use the provided one. This is useful for sharing a single + ServiceAccount across multiple clusters (e.g., for cloud IAM configurations). + If not specified, a ServiceAccount will be created with the cluster name. + Mutually exclusive with ServiceAccountTemplate. + maxLength: 253 + pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$ + type: string + x-kubernetes-validations: + - message: serviceAccountName is immutable + rule: self == oldSelf serviceAccountTemplate: description: Configure the generation of the service account properties: @@ -6759,6 +6894,108 @@ spec: pgDataImageInfo: description: PGDataImageInfo contains the details of the latest image that has run on the current data directory. properties: + extensions: + description: Extensions contains the container image extensions available for the current Image + items: + description: |- + ExtensionConfiguration is the configuration used to add + PostgreSQL extensions to the Cluster. + properties: + bin_path: + description: |- + A list of directories within the image to be appended to the + PostgreSQL process's `PATH` environment variable. + items: + type: string + type: array + dynamic_library_path: + description: |- + The list of directories inside the image which should be added to dynamic_library_path. + If not defined, defaults to "/lib". + items: + type: string + type: array + env: + description: |- + Env is a list of custom environment variables to be set in the + PostgreSQL process for this extension. It is the responsibility of the + cluster administrator to ensure the variables are correct for the + specific extension. Note that changes to these variables require + a manual cluster restart to take effect. + items: + description: |- + ExtensionEnvVar defines an environment variable for a specific extension + image volume. + properties: + name: + description: |- + Name of the environment variable to be injected into the + PostgreSQL process. + minLength: 1 + pattern: ^[a-zA-Z_][a-zA-Z0-9_]*$ + type: string + value: + description: |- + Value of the environment variable. CloudNativePG performs a direct + replacement of this value, with support for placeholder expansion. + The ${`image_root`} placeholder resolves to the absolute mount path + of the extension's volume (e.g., `/extensions/my-extension`). This + is particularly useful for allowing applications or libraries to + locate specific directories within the mounted image. + Unrecognized placeholders are rejected. To include a literal ${...} + in the value, escape it as $${...}. + minLength: 1 + type: string + required: + - name + - value + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + extension_control_path: + description: |- + The list of directories inside the image which should be added to extension_control_path. + If not defined, defaults to "/share". + items: + type: string + type: array + image: + description: The image containing the extension. + properties: + pullPolicy: + description: |- + Policy for pulling OCI objects. Possible values are: + Always: the kubelet always attempts to pull the reference. Container creation will fail If the pull fails. + Never: the kubelet never pulls the reference and only uses a local image or artifact. Container creation will fail if the reference isn't present. + IfNotPresent: the kubelet pulls if the reference isn't already present on disk. Container creation will fail if the reference isn't present and the pull fails. + Defaults to Always if :latest tag is specified, or IfNotPresent otherwise. + type: string + reference: + description: |- + Required: Image or artifact reference to be used. + Behaves in the same way as pod.spec.containers[*].image. + Pull secrets will be assembled in the same way as for the container image by looking up node credentials, SA image pull secrets, and pod spec image pull secrets. + More info: https://kubernetes.io/docs/concepts/containers/images + This field is optional to allow higher level config management to default or override + container images in workload controllers like Deployments and StatefulSets. + type: string + type: object + ld_library_path: + description: The list of directories inside the image which should be added to ld_library_path. + items: + type: string + type: array + name: + description: The name of the extension, required + minLength: 1 + pattern: ^[a-z0-9]([-a-z0-9_]*[a-z0-9])?$ + type: string + required: + - name + type: object + type: array image: description: Image is the image name type: string @@ -6831,6 +7068,30 @@ spec: - version type: object type: array + podSelectorRefs: + description: |- + PodSelectorRefs contains the resolved pod IPs for each named selector + defined in spec.podSelectorRefs. + items: + description: PodSelectorRefStatus contains the resolved pod IPs for a named selector. + properties: + ips: + description: |- + IPs is the list of pod IPs matching the selector. + Each IP is a single address (no CIDR notation). + items: + type: string + type: array + name: + description: Name corresponds to the name in the spec's PodSelectorRef. + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map poolerIntegrations: description: The integration needed by poolers referencing the cluster properties: diff --git a/clusters/cl01tl/manifests/cloudnative-pg/CustomResourceDefinition-databases.postgresql.cnpg.io.yaml b/clusters/cl01tl/manifests/cloudnative-pg/CustomResourceDefinition-databases.postgresql.cnpg.io.yaml index 688563a64..ba7d96044 100644 --- a/clusters/cl01tl/manifests/cloudnative-pg/CustomResourceDefinition-databases.postgresql.cnpg.io.yaml +++ b/clusters/cl01tl/manifests/cloudnative-pg/CustomResourceDefinition-databases.postgresql.cnpg.io.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.20.0 + controller-gen.kubebuilder.io/version: v0.20.1 helm.sh/resource-policy: keep name: databases.postgresql.cnpg.io spec: diff --git a/clusters/cl01tl/manifests/cloudnative-pg/CustomResourceDefinition-failoverquorums.postgresql.cnpg.io.yaml b/clusters/cl01tl/manifests/cloudnative-pg/CustomResourceDefinition-failoverquorums.postgresql.cnpg.io.yaml index ddd598f6f..4d8e39871 100644 --- a/clusters/cl01tl/manifests/cloudnative-pg/CustomResourceDefinition-failoverquorums.postgresql.cnpg.io.yaml +++ b/clusters/cl01tl/manifests/cloudnative-pg/CustomResourceDefinition-failoverquorums.postgresql.cnpg.io.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.20.0 + controller-gen.kubebuilder.io/version: v0.20.1 helm.sh/resource-policy: keep name: failoverquorums.postgresql.cnpg.io spec: diff --git a/clusters/cl01tl/manifests/cloudnative-pg/CustomResourceDefinition-imagecatalogs.postgresql.cnpg.io.yaml b/clusters/cl01tl/manifests/cloudnative-pg/CustomResourceDefinition-imagecatalogs.postgresql.cnpg.io.yaml index 564e856fe..a242ca16e 100644 --- a/clusters/cl01tl/manifests/cloudnative-pg/CustomResourceDefinition-imagecatalogs.postgresql.cnpg.io.yaml +++ b/clusters/cl01tl/manifests/cloudnative-pg/CustomResourceDefinition-imagecatalogs.postgresql.cnpg.io.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.20.0 + controller-gen.kubebuilder.io/version: v0.20.1 helm.sh/resource-policy: keep name: imagecatalogs.postgresql.cnpg.io spec: @@ -50,6 +50,111 @@ spec: items: description: CatalogImage defines the image and major version properties: + extensions: + description: The configuration of the extensions to be added + items: + description: |- + ExtensionConfiguration is the configuration used to add + PostgreSQL extensions to the Cluster. + properties: + bin_path: + description: |- + A list of directories within the image to be appended to the + PostgreSQL process's `PATH` environment variable. + items: + type: string + type: array + dynamic_library_path: + description: |- + The list of directories inside the image which should be added to dynamic_library_path. + If not defined, defaults to "/lib". + items: + type: string + type: array + env: + description: |- + Env is a list of custom environment variables to be set in the + PostgreSQL process for this extension. It is the responsibility of the + cluster administrator to ensure the variables are correct for the + specific extension. Note that changes to these variables require + a manual cluster restart to take effect. + items: + description: |- + ExtensionEnvVar defines an environment variable for a specific extension + image volume. + properties: + name: + description: |- + Name of the environment variable to be injected into the + PostgreSQL process. + minLength: 1 + pattern: ^[a-zA-Z_][a-zA-Z0-9_]*$ + type: string + value: + description: |- + Value of the environment variable. CloudNativePG performs a direct + replacement of this value, with support for placeholder expansion. + The ${`image_root`} placeholder resolves to the absolute mount path + of the extension's volume (e.g., `/extensions/my-extension`). This + is particularly useful for allowing applications or libraries to + locate specific directories within the mounted image. + Unrecognized placeholders are rejected. To include a literal ${...} + in the value, escape it as $${...}. + minLength: 1 + type: string + required: + - name + - value + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + extension_control_path: + description: |- + The list of directories inside the image which should be added to extension_control_path. + If not defined, defaults to "/share". + items: + type: string + type: array + image: + description: The image containing the extension. + properties: + pullPolicy: + description: |- + Policy for pulling OCI objects. Possible values are: + Always: the kubelet always attempts to pull the reference. Container creation will fail If the pull fails. + Never: the kubelet never pulls the reference and only uses a local image or artifact. Container creation will fail if the reference isn't present. + IfNotPresent: the kubelet pulls if the reference isn't already present on disk. Container creation will fail if the reference isn't present and the pull fails. + Defaults to Always if :latest tag is specified, or IfNotPresent otherwise. + type: string + reference: + description: |- + Required: Image or artifact reference to be used. + Behaves in the same way as pod.spec.containers[*].image. + Pull secrets will be assembled in the same way as for the container image by looking up node credentials, SA image pull secrets, and pod spec image pull secrets. + More info: https://kubernetes.io/docs/concepts/containers/images + This field is optional to allow higher level config management to default or override + container images in workload controllers like Deployments and StatefulSets. + type: string + type: object + ld_library_path: + description: The list of directories inside the image which should be added to ld_library_path. + items: + type: string + type: array + name: + description: The name of the extension, required + minLength: 1 + pattern: ^[a-z0-9]([-a-z0-9_]*[a-z0-9])?$ + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map image: description: The image reference type: string diff --git a/clusters/cl01tl/manifests/cloudnative-pg/CustomResourceDefinition-poolers.postgresql.cnpg.io.yaml b/clusters/cl01tl/manifests/cloudnative-pg/CustomResourceDefinition-poolers.postgresql.cnpg.io.yaml index 3edd40b64..3151f7174 100644 --- a/clusters/cl01tl/manifests/cloudnative-pg/CustomResourceDefinition-poolers.postgresql.cnpg.io.yaml +++ b/clusters/cl01tl/manifests/cloudnative-pg/CustomResourceDefinition-poolers.postgresql.cnpg.io.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.20.0 + controller-gen.kubebuilder.io/version: v0.20.1 helm.sh/resource-policy: keep name: poolers.postgresql.cnpg.io spec: @@ -395,6 +395,19 @@ spec: - name type: object type: object + serviceAccountName: + description: |- + Name of an existing ServiceAccount in the same namespace to use for the pooler. + When specified, the operator will not create a new ServiceAccount + but will use the provided one. This is useful for sharing a single + ServiceAccount across multiple poolers (e.g., for cloud IAM configurations). + If not specified, a ServiceAccount will be created with the pooler name. + maxLength: 253 + pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$ + type: string + x-kubernetes-validations: + - message: serviceAccountName is immutable + rule: self == oldSelf serviceTemplate: description: Template for the Service to be created properties: diff --git a/clusters/cl01tl/manifests/cloudnative-pg/CustomResourceDefinition-publications.postgresql.cnpg.io.yaml b/clusters/cl01tl/manifests/cloudnative-pg/CustomResourceDefinition-publications.postgresql.cnpg.io.yaml index d21395698..0df3c4fda 100644 --- a/clusters/cl01tl/manifests/cloudnative-pg/CustomResourceDefinition-publications.postgresql.cnpg.io.yaml +++ b/clusters/cl01tl/manifests/cloudnative-pg/CustomResourceDefinition-publications.postgresql.cnpg.io.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.20.0 + controller-gen.kubebuilder.io/version: v0.20.1 helm.sh/resource-policy: keep name: publications.postgresql.cnpg.io spec: diff --git a/clusters/cl01tl/manifests/cloudnative-pg/CustomResourceDefinition-scheduledbackups.postgresql.cnpg.io.yaml b/clusters/cl01tl/manifests/cloudnative-pg/CustomResourceDefinition-scheduledbackups.postgresql.cnpg.io.yaml index c652a9a49..e884729cf 100644 --- a/clusters/cl01tl/manifests/cloudnative-pg/CustomResourceDefinition-scheduledbackups.postgresql.cnpg.io.yaml +++ b/clusters/cl01tl/manifests/cloudnative-pg/CustomResourceDefinition-scheduledbackups.postgresql.cnpg.io.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.20.0 + controller-gen.kubebuilder.io/version: v0.20.1 helm.sh/resource-policy: keep name: scheduledbackups.postgresql.cnpg.io spec: diff --git a/clusters/cl01tl/manifests/cloudnative-pg/CustomResourceDefinition-subscriptions.postgresql.cnpg.io.yaml b/clusters/cl01tl/manifests/cloudnative-pg/CustomResourceDefinition-subscriptions.postgresql.cnpg.io.yaml index 113c500c5..14db625d1 100644 --- a/clusters/cl01tl/manifests/cloudnative-pg/CustomResourceDefinition-subscriptions.postgresql.cnpg.io.yaml +++ b/clusters/cl01tl/manifests/cloudnative-pg/CustomResourceDefinition-subscriptions.postgresql.cnpg.io.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.20.0 + controller-gen.kubebuilder.io/version: v0.20.1 helm.sh/resource-policy: keep name: subscriptions.postgresql.cnpg.io spec: diff --git a/clusters/cl01tl/manifests/cloudnative-pg/Deployment-cloudnative-pg.yaml b/clusters/cl01tl/manifests/cloudnative-pg/Deployment-cloudnative-pg.yaml index 589b0dd13..dc1ba5948 100644 --- a/clusters/cl01tl/manifests/cloudnative-pg/Deployment-cloudnative-pg.yaml +++ b/clusters/cl01tl/manifests/cloudnative-pg/Deployment-cloudnative-pg.yaml @@ -4,10 +4,10 @@ metadata: name: cloudnative-pg namespace: cloudnative-pg labels: - helm.sh/chart: cloudnative-pg-0.27.1 + helm.sh/chart: cloudnative-pg-0.28.0 app.kubernetes.io/name: cloudnative-pg app.kubernetes.io/instance: cloudnative-pg - app.kubernetes.io/version: "1.28.1" + app.kubernetes.io/version: "1.29.0" app.kubernetes.io/managed-by: Helm spec: replicas: 2 @@ -18,9 +18,9 @@ spec: template: metadata: annotations: - checksum/rbac: f56b7f8a804f170d0321013a76b6986d87676d3d2686ab6e516c78728c914633 - checksum/config: a9a8db623df05650079bba7bb18a20557d311139de2c1115f8a80327aefa16b5 - checksum/monitoring-config: 76f52b5d508cf7d22063ef07656ad78f7277ee177de83e23b5b06f7f54ebc924 + checksum/rbac: de6f8c0801db717a56d299947c958973df088ff20a44e5058af807c196824bd6 + checksum/config: 1b0703c95b4ee680d176bff9c527b0aa792c9296c2c7ce6d0d9feb8a4a719a9c + checksum/monitoring-config: e386a85eeb1c33f87053f6424690f9a77e6ef7247a617162dbaee9b370fb70d1 labels: app.kubernetes.io/name: cloudnative-pg app.kubernetes.io/instance: cloudnative-pg @@ -36,14 +36,14 @@ spec: - /manager env: - name: OPERATOR_IMAGE_NAME - value: "ghcr.io/cloudnative-pg/cloudnative-pg:1.28.1" + value: "ghcr.io/cloudnative-pg/cloudnative-pg:1.29.0" - name: OPERATOR_NAMESPACE valueFrom: fieldRef: fieldPath: metadata.namespace - name: MONITORING_QUERIES_CONFIGMAP value: "cnpg-default-monitoring" - image: "ghcr.io/cloudnative-pg/cloudnative-pg:1.28.1" + image: "ghcr.io/cloudnative-pg/cloudnative-pg:1.29.0" imagePullPolicy: IfNotPresent livenessProbe: httpGet: diff --git a/clusters/cl01tl/manifests/cloudnative-pg/MutatingWebhookConfiguration-cnpg-mutating-webhook-configuration.yaml b/clusters/cl01tl/manifests/cloudnative-pg/MutatingWebhookConfiguration-cnpg-mutating-webhook-configuration.yaml index e9ef005b2..dd546a90d 100644 --- a/clusters/cl01tl/manifests/cloudnative-pg/MutatingWebhookConfiguration-cnpg-mutating-webhook-configuration.yaml +++ b/clusters/cl01tl/manifests/cloudnative-pg/MutatingWebhookConfiguration-cnpg-mutating-webhook-configuration.yaml @@ -3,10 +3,10 @@ kind: MutatingWebhookConfiguration metadata: name: cnpg-mutating-webhook-configuration labels: - helm.sh/chart: cloudnative-pg-0.27.1 + helm.sh/chart: cloudnative-pg-0.28.0 app.kubernetes.io/name: cloudnative-pg app.kubernetes.io/instance: cloudnative-pg - app.kubernetes.io/version: "1.28.1" + app.kubernetes.io/version: "1.29.0" app.kubernetes.io/managed-by: Helm webhooks: - admissionReviewVersions: diff --git a/clusters/cl01tl/manifests/cloudnative-pg/PodMonitor-cloudnative-pg.yaml b/clusters/cl01tl/manifests/cloudnative-pg/PodMonitor-cloudnative-pg.yaml index 10ad74528..32a0f4a5d 100644 --- a/clusters/cl01tl/manifests/cloudnative-pg/PodMonitor-cloudnative-pg.yaml +++ b/clusters/cl01tl/manifests/cloudnative-pg/PodMonitor-cloudnative-pg.yaml @@ -4,10 +4,10 @@ metadata: name: cloudnative-pg namespace: cloudnative-pg labels: - helm.sh/chart: cloudnative-pg-0.27.1 + helm.sh/chart: cloudnative-pg-0.28.0 app.kubernetes.io/name: cloudnative-pg app.kubernetes.io/instance: cloudnative-pg - app.kubernetes.io/version: "1.28.1" + app.kubernetes.io/version: "1.29.0" app.kubernetes.io/managed-by: Helm spec: selector: diff --git a/clusters/cl01tl/manifests/cloudnative-pg/Service-cnpg-webhook-service.yaml b/clusters/cl01tl/manifests/cloudnative-pg/Service-cnpg-webhook-service.yaml index a4210195c..c2cd46420 100644 --- a/clusters/cl01tl/manifests/cloudnative-pg/Service-cnpg-webhook-service.yaml +++ b/clusters/cl01tl/manifests/cloudnative-pg/Service-cnpg-webhook-service.yaml @@ -4,10 +4,10 @@ metadata: name: cnpg-webhook-service namespace: cloudnative-pg labels: - helm.sh/chart: cloudnative-pg-0.27.1 + helm.sh/chart: cloudnative-pg-0.28.0 app.kubernetes.io/name: cloudnative-pg app.kubernetes.io/instance: cloudnative-pg - app.kubernetes.io/version: "1.28.1" + app.kubernetes.io/version: "1.29.0" app.kubernetes.io/managed-by: Helm spec: type: ClusterIP diff --git a/clusters/cl01tl/manifests/cloudnative-pg/ServiceAccount-cloudnative-pg.yaml b/clusters/cl01tl/manifests/cloudnative-pg/ServiceAccount-cloudnative-pg.yaml index 6351115e5..45bda02cd 100644 --- a/clusters/cl01tl/manifests/cloudnative-pg/ServiceAccount-cloudnative-pg.yaml +++ b/clusters/cl01tl/manifests/cloudnative-pg/ServiceAccount-cloudnative-pg.yaml @@ -4,8 +4,8 @@ metadata: name: cloudnative-pg namespace: cloudnative-pg labels: - helm.sh/chart: cloudnative-pg-0.27.1 + helm.sh/chart: cloudnative-pg-0.28.0 app.kubernetes.io/name: cloudnative-pg app.kubernetes.io/instance: cloudnative-pg - app.kubernetes.io/version: "1.28.1" + app.kubernetes.io/version: "1.29.0" app.kubernetes.io/managed-by: Helm diff --git a/clusters/cl01tl/manifests/cloudnative-pg/ValidatingWebhookConfiguration-cnpg-validating-webhook-configuration.yaml b/clusters/cl01tl/manifests/cloudnative-pg/ValidatingWebhookConfiguration-cnpg-validating-webhook-configuration.yaml index 66b692c55..692209b64 100644 --- a/clusters/cl01tl/manifests/cloudnative-pg/ValidatingWebhookConfiguration-cnpg-validating-webhook-configuration.yaml +++ b/clusters/cl01tl/manifests/cloudnative-pg/ValidatingWebhookConfiguration-cnpg-validating-webhook-configuration.yaml @@ -3,10 +3,10 @@ kind: ValidatingWebhookConfiguration metadata: name: cnpg-validating-webhook-configuration labels: - helm.sh/chart: cloudnative-pg-0.27.1 + helm.sh/chart: cloudnative-pg-0.28.0 app.kubernetes.io/name: cloudnative-pg app.kubernetes.io/instance: cloudnative-pg - app.kubernetes.io/version: "1.28.1" + app.kubernetes.io/version: "1.29.0" app.kubernetes.io/managed-by: Helm webhooks: - admissionReviewVersions: