Skip to content

Commit b8aab1e

Browse files
committed
Merge remote-tracking branch 'public/develop' into develop
2 parents 3aab62d + ba4e638 commit b8aab1e

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

43 files changed

+7262
-271
lines changed

product_docs/docs/postgres_for_kubernetes/1/backup_barmanobjectstore.mdx

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ be *tarballs*. Both base backups and WAL files can be compressed
2929
and encrypted.
3030

3131
For this, it is required to use an image with `barman-cli-cloud` included.
32-
You can use the image `quay.io/enterprisedb/postgresql` for this scope,
32+
You can use the image `docker.enterprisedb.com/k8s_enterprise/postgresql` for this scope,
3333
as it is composed of a community PostgreSQL image and the latest
3434
`barman-cli-cloud` package.
3535

@@ -38,6 +38,15 @@ as it is composed of a community PostgreSQL image and the latest
3838
in your system to take advantage of the improvements introduced in
3939
Barman cloud (as well as improve the security aspects of your cluster).
4040

41+
!!! Warning "Changes in Barman Cloud 3.16+ and Bucket Creation"
42+
Starting with Barman Cloud 3.16, most Barman Cloud commands no longer
43+
automatically create the target bucket, assuming it already exists. Only the
44+
`barman-cloud-check-wal-archive` command creates the bucket now. Whenever this
45+
is not the first operation run on an empty bucket, {{name.ln}} will throw an
46+
error. As a result, to ensure reliable, future-proof operations and avoid
47+
potential issues, we strongly recommend that you create and configure your
48+
object store bucket *before* creating a `Cluster` resource that references it.
49+
4150
A backup is performed from a primary or a designated primary instance in a
4251
`Cluster` (please refer to
4352
[replica clusters](replica_cluster.md)

product_docs/docs/postgres_for_kubernetes/1/bootstrap.mdx

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -626,7 +626,7 @@ file on the source PostgreSQL instance:
626626
host replication streaming_replica all md5
627627
```
628628

629-
The following manifest creates a new PostgreSQL 17.5 cluster,
629+
The following manifest creates a new PostgreSQL 18.0 cluster,
630630
called `target-db`, using the `pg_basebackup` bootstrap method
631631
to clone an external PostgreSQL cluster defined as `source-db`
632632
(in the `externalClusters` array). As you can see, the `source-db`
@@ -641,7 +641,7 @@ metadata:
641641
name: target-db
642642
spec:
643643
instances: 3
644-
imageName: quay.io/enterprisedb/postgresql:17.5
644+
imageName: docker.enterprisedb.com/k8s_enterprise/postgresql:18.0-system-trixie
645645
646646
bootstrap:
647647
pg_basebackup:
@@ -661,7 +661,7 @@ spec:
661661
```
662662

663663
All the requirements must be met for the clone operation to work, including
664-
the same PostgreSQL version (in our case 17.5).
664+
the same PostgreSQL version (in our case 18.0).
665665

666666
#### TLS certificate authentication
667667

@@ -676,7 +676,7 @@ in the same Kubernetes cluster.
676676
This example can be easily adapted to cover an instance that resides
677677
outside the Kubernetes cluster.
678678

679-
The manifest defines a new PostgreSQL 17.5 cluster called `cluster-clone-tls`,
679+
The manifest defines a new PostgreSQL 18.0 cluster called `cluster-clone-tls`,
680680
which is bootstrapped using the `pg_basebackup` method from the `cluster-example`
681681
external cluster. The host is identified by the read/write service
682682
in the same cluster, while the `streaming_replica` user is authenticated
@@ -691,7 +691,7 @@ metadata:
691691
name: cluster-clone-tls
692692
spec:
693693
instances: 3
694-
imageName: quay.io/enterprisedb/postgresql:17.5
694+
imageName: docker.enterprisedb.com/k8s_enterprise/postgresql:18.0-system-trixie
695695
696696
bootstrap:
697697
pg_basebackup:

product_docs/docs/postgres_for_kubernetes/1/cncf-projects/external-secrets.mdx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ uses a `Merge` policy to update only the specified fields (`password`, `pgpass`,
9494
`jdbc-uri` and `uri`) in the `cluster-example-app` secret.
9595

9696
```yaml
97-
apiVersion: external-secrets.io/v1beta1
97+
apiVersion: external-secrets.io/v1
9898
kind: ExternalSecret
9999
metadata:
100100
name: cluster-example-app-secret
@@ -182,7 +182,7 @@ named `vault-token` exists in the same namespace, containing the token used to
182182
authenticate with Vault.
183183

184184
```yaml
185-
apiVersion: external-secrets.io/v1beta1
185+
apiVersion: external-secrets.io/v1
186186
kind: SecretStore
187187
metadata:
188188
name: vault-backend

product_docs/docs/postgres_for_kubernetes/1/connection_pooling.mdx

Lines changed: 18 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -335,11 +335,13 @@ These are the PgBouncer options you can customize, with links to the PgBouncer
335335
documentation for each parameter. Unless stated otherwise, the default values
336336
are the ones directly set by PgBouncer.
337337

338+
- [`auth_type`](https://www.pgbouncer.org/config.html#auth_type)
338339
- [`application_name_add_host`](https://www.pgbouncer.org/config.html#application_name_add_host)
339340
- [`autodb_idle_timeout`](https://www.pgbouncer.org/config.html#autodb_idle_timeout)
340341
- [`cancel_wait_timeout`](https://www.pgbouncer.org/config.html#cancel_wait_timeout)
341342
- [`client_idle_timeout`](https://www.pgbouncer.org/config.html#client_idle_timeout)
342343
- [`client_login_timeout`](https://www.pgbouncer.org/config.html#client_login_timeout)
344+
- [`client_tls_sslmode`](https://www.pgbouncer.org/config.html#client_tls_sslmode)
343345
- [`default_pool_size`](https://www.pgbouncer.org/config.html#default_pool_size)
344346
- [`disable_pqexec`](https://www.pgbouncer.org/config.html#disable_pqexec)
345347
- [`dns_max_ttl`](https://www.pgbouncer.org/config.html#dns_max_ttl)
@@ -378,6 +380,7 @@ are the ones directly set by PgBouncer.
378380
- [`server_round_robin`](https://www.pgbouncer.org/config.html#server_round_robin)
379381
- [`server_tls_ciphers`](https://www.pgbouncer.org/config.html#server_tls_ciphers)
380382
- [`server_tls_protocols`](https://www.pgbouncer.org/config.html#server_tls_protocols)
383+
- [`server_tls_sslmode`](https://www.pgbouncer.org/config.html#server_tls_sslmode)
381384
- [`stats_period`](https://www.pgbouncer.org/config.html#stats_period)
382385
- [`suspend_timeout`](https://www.pgbouncer.org/config.html#suspend_timeout)
383386
- [`tcp_defer_accept`](https://www.pgbouncer.org/config.html#tcp_defer_accept)
@@ -587,18 +590,10 @@ cnp_pgbouncer_stats_total_xact_time{database="pgbouncer"} 0
587590
For a better understanding of the metrics please refer to the PgBouncer documentation.
588591

589592
As for clusters, a specific pooler can be monitored using the
590-
[Prometheus operator's](https://github.com/prometheus-operator/prometheus-operator) resource
591-
[PodMonitor](https://github.com/prometheus-operator/prometheus-operator/blob/v0.47.1/Documentation/api.md#podmonitor).
592-
A `PodMonitor` correctly pointing to a pooler can be created by the operator by setting
593-
`.spec.monitoring.enablePodMonitor` to `true` in the `Pooler` resource. The default is `false`.
593+
[Prometheus operator's](https://github.com/prometheus-operator/prometheus-operator)
594+
[`PodMonitor` resource](https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.PodMonitor).
594595

595-
!!! Important
596-
Any change to `PodMonitor` created automatically is overridden by the
597-
operator at the next reconciliation cycle. If you need to customize it, you can
598-
do so as shown in the following example.
599-
600-
To deploy a `PodMonitor` for a specific pooler manually, you can define it as
601-
follows and change it as needed:
596+
You can deploy a `PodMonitor` for a specific pooler using the following basic example, and change it as needed:
602597

603598
```yaml
604599
apiVersion: monitoring.coreos.com/v1
@@ -613,6 +608,18 @@ spec:
613608
- port: metrics
614609
```
615610

611+
### Deprecation of Automatic `PodMonitor` Creation
612+
613+
!!!warning "Feature Deprecation Notice"
614+
The `.spec.monitoring.enablePodMonitor` field in the `Pooler` resource is
615+
now deprecated and will be removed in a future version of the operator.
616+
617+
If you are currently using this feature, we strongly recommend you either
618+
remove or set `.spec.monitoring.enablePodMonitor` to `false` and manually
619+
create a `PodMonitor` resource for your pooler as described above.
620+
This change ensures that you have complete ownership of your monitoring
621+
configuration, preventing it from being managed or overwritten by the operator.
622+
616623
## Logging
617624

618625
Logs are directly sent to standard output, in JSON format, like in the

product_docs/docs/postgres_for_kubernetes/1/container_images.mdx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ automatically overrides it with its instance manager.
3939
EDB provides and maintains
4040
[public PostgreSQL container images](https://github.com/enterprisedb/docker-postgres)
4141
that are fully compatible with {{name.ln}}. These images are published on
42-
[quay.io](https://quay.io/enterprisedb/postgresql).
42+
[docker.enterprisedb.com](https://docker.enterprisedb.com/k8s_enterprise/postgresql).
4343

4444
## Image Tag Requirements
4545

@@ -70,4 +70,4 @@ Examples of accepted image tags:
7070
`latest` is not considered a valid tag for the image.
7171

7272
!!! Note
73-
Image tag requirements do no apply for images defined in a catalog.
73+
Image tag requirements do not apply for images defined in a catalog.

product_docs/docs/postgres_for_kubernetes/1/declarative_hibernation.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ $ kubectl cnp status <cluster-name>
5555
Cluster Summary
5656
Name: cluster-example
5757
Namespace: default
58-
PostgreSQL Image: quay.io/enterprisedb/postgresql:17.5
58+
PostgreSQL Image: docker.enterprisedb.com/k8s_enterprise/postgresql:18.0-system-trixie
5959
Primary instance: cluster-example-2
6060
Status: Cluster in healthy state
6161
Instances: 3

product_docs/docs/postgres_for_kubernetes/1/image_catalog.mdx

Lines changed: 56 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -35,11 +35,13 @@ metadata:
3535
spec:
3636
images:
3737
- major: 15
38-
image: quay.io/enterprisedb/postgresql:15.6
38+
image: docker.enterprisedb.com/k8s_enterprise/postgresql:15.14-system-trixie
3939
- major: 16
40-
image: quay.io/enterprisedb/postgresql:16.8
40+
image: docker.enterprisedb.com/k8s_enterprise/postgresql:16.10-system-trixie
4141
- major: 17
42-
image: quay.io/enterprisedb/postgresql:17.5
42+
image: docker.enterprisedb.com/k8s_enterprise/postgresql:17.6-system-trixie
43+
- major: 18
44+
image: docker.enterprisedb.com/k8s_enterprise/postgresql:18.0-system-trixie
4345
```
4446
4547
**Example of a Cluster-Wide Catalog using `ClusterImageCatalog` Resource:**
@@ -52,15 +54,18 @@ metadata:
5254
spec:
5355
images:
5456
- major: 15
55-
image: quay.io/enterprisedb/postgresql:15.6
57+
image: docker.enterprisedb.com/k8s_enterprise/postgresql:15.14-system-trixie
5658
- major: 16
57-
image: quay.io/enterprisedb/postgresql:16.8
59+
image: docker.enterprisedb.com/k8s_enterprise/postgresql:16.10-system-trixie
5860
- major: 17
59-
image: quay.io/enterprisedb/postgresql:17.5
61+
image: docker.enterprisedb.com/k8s_enterprise/postgresql:17.6-system-trixie
62+
- major: 18
63+
image: docker.enterprisedb.com/k8s_enterprise/postgresql:18.0-system-trixie
6064
```
6165

6266
A `Cluster` resource has the flexibility to reference either an `ImageCatalog`
63-
or a `ClusterImageCatalog` to precisely specify the desired image.
67+
(like in the following example) or a `ClusterImageCatalog` to precisely specify
68+
the desired image.
6469

6570
```yaml
6671
apiVersion: postgresql.k8s.enterprisedb.io/v1
@@ -71,6 +76,7 @@ spec:
7176
instances: 3
7277
imageCatalogRef:
7378
apiGroup: postgresql.k8s.enterprisedb.io
79+
# Change the following to `ClusterImageCatalog` if needed
7480
kind: ImageCatalog
7581
name: postgresql
7682
major: 16
@@ -84,33 +90,56 @@ Any alterations to the images within a catalog trigger automatic updates for
8490
8591
## {{name.ln}} Catalogs
8692
87-
The {{name.ln}} project maintains `ClusterImageCatalogs` for the images it
88-
provides. These catalogs are regularly updated with the latest images for each
89-
major version. By applying the `ClusterImageCatalog.yaml` file from the
90-
{{name.ln}} project's GitHub repositories, cluster administrators can ensure
91-
that their clusters are automatically updated to the latest version within the
92-
specified major release.
93+
The {{name.ln}} project maintains `ClusterImageCatalog` manifests for all
94+
supported images.
9395

94-
### PostgreSQL Container Images
96+
These catalogs are regularly updated and published in the
97+
[artifacts repository](https://github.com/cloudnative-pg/artifacts/tree/main/image-catalogs).
9598

96-
You can install the
97-
[latest version of the cluster catalog for the PostgreSQL Container Images](https://raw.githubusercontent.com/cloudnative-pg/postgres-containers/main/Debian/ClusterImageCatalog-bookworm.yaml)
98-
([cloudnative-pg/postgres-containers](https://github.com/enterprisedb/docker-postgres) repository)
99-
with:
99+
Each catalog corresponds to a specific combination of image type (e.g.
100+
`minimal`) and Debian release (e.g. `trixie`). It lists the most up-to-date
101+
container images for every supported PostgreSQL major version.
102+
103+
By installing these catalogs, cluster administrators can ensure that their
104+
PostgreSQL clusters are automatically updated to the latest patch release
105+
within a given PostgreSQL major version, for the selected Debian distribution
106+
and image type.
107+
108+
For example, to install the latest catalog for the `minimal` PostgreSQL
109+
container images on Debian `trixie`, run:
100110

101111
```shell
102-
kubectl apply \
103-
-f https://raw.githubusercontent.com/cloudnative-pg/postgres-containers/main/Debian/ClusterImageCatalog-bookworm.yaml
112+
kubectl apply -f \
113+
https://raw.githubusercontent.com/cloudnative-pg/artifacts/refs/heads/main/image-catalogs/catalog-minimal-trixie.yaml
104114
```
105115

106-
### PostGIS Container Images
116+
You can install all the available catalogs by using the `kustomization` file
117+
present in the `image-catalogs` directory:
118+
119+
```shell
120+
kubectl apply -k https://github.com/cloudnative-pg/artifacts//image-catalogs?ref=main
121+
```
107122

108-
You can install the
109-
[latest version of the cluster catalog for the PostGIS Container Images](https://raw.githubusercontent.com/cloudnative-pg/postgis-containers/main/PostGIS/ClusterImageCatalog.yaml)
110-
([cloudnative-pg/postgis-containers](https://github.com/cloudnative-pg/postgis-containers) repository)
111-
with:
123+
You can then view all the catalogs deployed with:
112124

113125
```shell
114-
kubectl apply \
115-
-f https://raw.githubusercontent.com/cloudnative-pg/postgis-containers/main/PostGIS/ClusterImageCatalog.yaml
126+
kubectl get clusterimagecatalogs.postgresql.k8s.enterprisedb.io
127+
```
128+
129+
For example, you can create a cluster with the latest `minimal` image for PostgreSQL 18 on `trixie` with:
130+
131+
```yaml
132+
apiVersion: postgresql.k8s.enterprisedb.io/v1
133+
kind: Cluster
134+
metadata:
135+
name: angus
136+
spec:
137+
instances: 3
138+
imageCatalogRef:
139+
apiGroup: postgresql.k8s.enterprisedb.io
140+
kind: ClusterImageCatalog
141+
name: postgresql-minimal-trixie
142+
major: 18
143+
storage:
144+
size: 1Gi
116145
```

product_docs/docs/postgres_for_kubernetes/1/imagevolume_extensions.mdx

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -302,7 +302,7 @@ spec:
302302
```
303303

304304
{{name.ln}} will set the `LD_LIBRARY_PATH` environment variable to include
305-
`/extensions/postgis/system`, allowing PostgreSQL to locate and load these
305+
`/extensions/postgis/syslib`, allowing PostgreSQL to locate and load these
306306
system libraries at runtime.
307307

308308
!!! Important
@@ -316,10 +316,10 @@ system libraries at runtime.
316316
A standard extension container image for {{name.ln}} includes two
317317
required directories at its root:
318318

319-
- `share`: contains the extension control file (e.g., `<EXTENSION>.control`)
320-
and any SQL files.
321-
- `lib`: contains the extension's shared library (e.g., `<EXTENSION>.so`) and
322-
any additional required libraries.
319+
- `/share/`: contains an `extension` subdirectory with the extension control
320+
file (e.g. `<EXTENSION>.control`) and the corresponding SQL files.
321+
- `/lib/`: contains the extensions shared library (e.g. `<EXTENSION>.so`) as
322+
well as any other required libraries.
323323

324324
Following this structure ensures that the extension will be automatically
325325
discoverable and usable by PostgreSQL within {{name.ln}} without requiring

product_docs/docs/postgres_for_kubernetes/1/index.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ description: The {{name.ln}} operator is a fork based on CloudNativePG™ which
44
originalFilePath: src/index.md
55
indexCards: none
66
directoryDefaults:
7-
version: "1.27.0"
7+
version: "1.27.1"
88
redirects:
99
- /postgres_for_kubernetes/preview/:splat
1010
navigation:

0 commit comments

Comments
 (0)