From 8f42635df36c238d59c363e14d7ae89fa3ba2ce6 Mon Sep 17 00:00:00 2001
From: Gabriele Bartolini
Date: Fri, 25 Jul 2025 14:07:25 +0200
Subject: [PATCH] docs: releases 1.26.1 and 1.25.3
Closes #336
Signed-off-by: Gabriele Bartolini
---
assets/documentation/1.25/404.html | 2 +
.../1.25/appendixes/object_stores/index.html | 6 +-
.../1.25/applications/index.html | 8 +
.../1.25/architecture/index.html | 2 +
assets/documentation/1.25/backup/index.html | 2 +
.../1.25/backup_barmanobjectstore/index.html | 2 +
.../1.25/backup_recovery/index.html | 2 +
.../1.25/backup_volumesnapshot/index.html | 2 +
.../1.25/before_you_start/index.html | 2 +
.../1.25/benchmarking/index.html | 2 +
.../documentation/1.25/bootstrap/index.html | 4 +
.../1.25/certificates/index.html | 2 +
.../1.25/cloudnative-pg.v1/index.html | 16 +-
.../1.25/cluster_conf/index.html | 2 +
.../1.25/cncf-projects/cilium/index.html | 593 ++++++++++++++++++
.../cncf-projects/external-secrets/index.html | 6 +-
.../1.25/connection_pooling/index.html | 2 +
.../1.25/container_images/index.html | 2 +
.../documentation/1.25/controller/index.html | 2 +
.../1.25/database_import/index.html | 127 +++-
.../index.html | 2 +
.../1.25/declarative_hibernation/index.html | 2 +
.../declarative_role_management/index.html | 2 +
assets/documentation/1.25/e2e/index.html | 2 +
assets/documentation/1.25/failover/index.html | 2 +
.../1.25/failure_modes/index.html | 2 +
assets/documentation/1.25/faq/index.html | 2 +
assets/documentation/1.25/fencing/index.html | 2 +
.../1.25/image_catalog/index.html | 2 +
assets/documentation/1.25/index.html | 10 +-
.../1.25/installation_upgrade/index.html | 6 +-
.../1.25/instance_manager/index.html | 2 +
.../1.25/kubectl-plugin/index.html | 32 +-
.../1.25/kubernetes_upgrade/index.html | 2 +
.../1.25/labels_annotations/index.html | 2 +
assets/documentation/1.25/logging/index.html | 2 +
.../1.25/logical_replication/index.html | 2 +
.../documentation/1.25/monitoring/index.html | 2 +
.../documentation/1.25/networking/index.html | 2 +
.../operator_capability_levels/index.html | 2 +
.../1.25/operator_conf/index.html | 2 +
assets/documentation/1.25/postgis/index.html | 2 +
.../1.25/postgresql_conf/index.html | 28 +-
.../1.25/preview_version/index.html | 2 +
.../documentation/1.25/quickstart/index.html | 2 +
assets/documentation/1.25/recovery/index.html | 9 +
.../edb-cloud-native-postgresql/index.html | 2 +
.../1.25/release_notes/index.html | 2 +
.../1.25/release_notes/old/v1.15/index.html | 2 +
.../1.25/release_notes/old/v1.16/index.html | 2 +
.../1.25/release_notes/old/v1.17/index.html | 2 +
.../1.25/release_notes/old/v1.18/index.html | 2 +
.../1.25/release_notes/old/v1.19/index.html | 2 +
.../1.25/release_notes/old/v1.20/index.html | 2 +
.../1.25/release_notes/old/v1.21/index.html | 2 +
.../1.25/release_notes/old/v1.22/index.html | 2 +
.../1.25/release_notes/old/v1.23/index.html | 2 +
.../1.25/release_notes/old/v1.24/index.html | 2 +
.../1.25/release_notes/v1.25/index.html | 92 ++-
.../1.25/replica_cluster/index.html | 2 +
.../documentation/1.25/replication/index.html | 2 +
.../1.25/resource_management/index.html | 19 +-
.../1.25/rolling_update/index.html | 2 +
assets/documentation/1.25/samples/index.html | 2 +
.../documentation/1.25/scheduling/index.html | 2 +
assets/documentation/1.25/search.html | 2 +
.../1.25/search/search_index.json | 2 +-
assets/documentation/1.25/security/index.html | 2 +
.../1.25/service_management/index.html | 2 +
assets/documentation/1.25/sitemap.xml.gz | Bin 127 -> 127 bytes
.../1.25/ssl_connections/index.html | 2 +
assets/documentation/1.25/storage/index.html | 2 +
.../1.25/supported_releases/index.html | 5 +-
.../documentation/1.25/tablespaces/index.html | 7 +
.../1.25/troubleshooting/index.html | 2 +
.../documentation/1.25/use_cases/index.html | 2 +
.../1.25/wal_archiving/index.html | 2 +
assets/documentation/1.26/404.html | 2 +
.../backup_barmanobjectstore/index.html | 2 +
.../backup_volumesnapshot/index.html | 6 +-
.../1.26/appendixes/object_stores/index.html | 2 +
.../1.26/applications/index.html | 8 +
.../1.26/architecture/index.html | 2 +
assets/documentation/1.26/backup/index.html | 2 +
.../1.26/backup_recovery/index.html | 2 +
.../1.26/before_you_start/index.html | 2 +
.../1.26/benchmarking/index.html | 2 +
.../documentation/1.26/bootstrap/index.html | 4 +
.../1.26/certificates/index.html | 2 +
.../1.26/cloudnative-pg.v1/index.html | 33 +-
.../1.26/cluster_conf/index.html | 2 +
.../1.26/cncf-projects/cilium/index.html | 593 ++++++++++++++++++
.../cncf-projects/external-secrets/index.html | 6 +-
.../1.26/connection_pooling/index.html | 2 +
.../1.26/container_images/index.html | 2 +
.../documentation/1.26/controller/index.html | 2 +
.../1.26/database_import/index.html | 127 +++-
.../index.html | 2 +
.../1.26/declarative_hibernation/index.html | 2 +
.../declarative_role_management/index.html | 2 +
assets/documentation/1.26/e2e/index.html | 2 +
assets/documentation/1.26/failover/index.html | 2 +
.../1.26/failure_modes/index.html | 2 +
assets/documentation/1.26/faq/index.html | 2 +
assets/documentation/1.26/fencing/index.html | 2 +
.../1.26/image_catalog/index.html | 2 +
assets/documentation/1.26/index.html | 8 +-
.../1.26/installation_upgrade/index.html | 74 ++-
.../1.26/instance_manager/index.html | 2 +
.../1.26/kubectl-plugin/index.html | 32 +-
.../1.26/kubernetes_upgrade/index.html | 2 +
.../1.26/labels_annotations/index.html | 2 +
assets/documentation/1.26/logging/index.html | 2 +
.../1.26/logical_replication/index.html | 2 +
.../documentation/1.26/monitoring/index.html | 23 +-
.../documentation/1.26/networking/index.html | 2 +
.../operator_capability_levels/index.html | 2 +
.../1.26/operator_conf/index.html | 2 +
assets/documentation/1.26/postgis/index.html | 2 +
.../1.26/postgres_upgrades/index.html | 12 +
.../1.26/postgresql_conf/index.html | 24 +
.../1.26/preview_version/index.html | 2 +
.../documentation/1.26/quickstart/index.html | 2 +
assets/documentation/1.26/recovery/index.html | 9 +
.../edb-cloud-native-postgresql/index.html | 2 +
.../1.26/release_notes/index.html | 2 +
.../1.26/release_notes/old/v1.15/index.html | 2 +
.../1.26/release_notes/old/v1.16/index.html | 2 +
.../1.26/release_notes/old/v1.17/index.html | 2 +
.../1.26/release_notes/old/v1.18/index.html | 2 +
.../1.26/release_notes/old/v1.19/index.html | 2 +
.../1.26/release_notes/old/v1.20/index.html | 2 +
.../1.26/release_notes/old/v1.21/index.html | 2 +
.../1.26/release_notes/old/v1.22/index.html | 2 +
.../1.26/release_notes/old/v1.23/index.html | 2 +
.../1.26/release_notes/old/v1.24/index.html | 2 +
.../1.26/release_notes/v1.25/index.html | 92 ++-
.../1.26/release_notes/v1.26/index.html | 124 +++-
.../1.26/replica_cluster/index.html | 2 +
.../documentation/1.26/replication/index.html | 2 +
.../1.26/resource_management/index.html | 19 +-
.../1.26/rolling_update/index.html | 34 +-
.../1.26/samples/cluster-example.yaml | 1 -
assets/documentation/1.26/samples/index.html | 2 +
.../documentation/1.26/scheduling/index.html | 2 +
assets/documentation/1.26/search.html | 2 +
.../1.26/search/search_index.json | 2 +-
assets/documentation/1.26/security/index.html | 2 +
.../1.26/service_management/index.html | 2 +
assets/documentation/1.26/sitemap.xml.gz | Bin 127 -> 127 bytes
.../1.26/ssl_connections/index.html | 2 +
assets/documentation/1.26/storage/index.html | 2 +
.../1.26/supported_releases/index.html | 5 +-
.../documentation/1.26/tablespaces/index.html | 7 +
.../1.26/troubleshooting/index.html | 9 +-
.../documentation/1.26/use_cases/index.html | 2 +
.../1.26/wal_archiving/index.html | 2 +
assets/documentation/current/404.html | 2 +
.../backup_barmanobjectstore/index.html | 2 +
.../backup_volumesnapshot/index.html | 6 +-
.../appendixes/object_stores/index.html | 2 +
.../current/applications/index.html | 8 +
.../current/architecture/index.html | 2 +
.../documentation/current/backup/index.html | 2 +
.../current/backup_recovery/index.html | 2 +
.../current/before_you_start/index.html | 2 +
.../current/benchmarking/index.html | 2 +
.../current/bootstrap/index.html | 4 +
.../current/certificates/index.html | 2 +
.../current/cloudnative-pg.v1/index.html | 33 +-
.../current/cluster_conf/index.html | 2 +
.../current/cncf-projects/cilium/index.html | 593 ++++++++++++++++++
.../cncf-projects/external-secrets/index.html | 6 +-
.../current/connection_pooling/index.html | 2 +
.../current/container_images/index.html | 2 +
.../current/controller/index.html | 2 +
.../current/database_import/index.html | 127 +++-
.../index.html | 2 +
.../declarative_hibernation/index.html | 2 +
.../declarative_role_management/index.html | 2 +
assets/documentation/current/e2e/index.html | 2 +
.../documentation/current/failover/index.html | 2 +
.../current/failure_modes/index.html | 2 +
assets/documentation/current/faq/index.html | 2 +
.../documentation/current/fencing/index.html | 2 +
.../current/image_catalog/index.html | 2 +
assets/documentation/current/index.html | 8 +-
.../current/installation_upgrade/index.html | 74 ++-
.../current/instance_manager/index.html | 2 +
.../current/kubectl-plugin/index.html | 32 +-
.../current/kubernetes_upgrade/index.html | 2 +
.../current/labels_annotations/index.html | 2 +
.../documentation/current/logging/index.html | 2 +
.../current/logical_replication/index.html | 2 +
.../current/monitoring/index.html | 23 +-
.../current/networking/index.html | 2 +
.../operator_capability_levels/index.html | 2 +
.../current/operator_conf/index.html | 2 +
.../documentation/current/postgis/index.html | 2 +
.../current/postgres_upgrades/index.html | 12 +
.../current/postgresql_conf/index.html | 24 +
.../current/preview_version/index.html | 2 +
.../current/quickstart/index.html | 2 +
.../documentation/current/recovery/index.html | 9 +
.../edb-cloud-native-postgresql/index.html | 2 +
.../current/release_notes/index.html | 2 +
.../release_notes/old/v1.15/index.html | 2 +
.../release_notes/old/v1.16/index.html | 2 +
.../release_notes/old/v1.17/index.html | 2 +
.../release_notes/old/v1.18/index.html | 2 +
.../release_notes/old/v1.19/index.html | 2 +
.../release_notes/old/v1.20/index.html | 2 +
.../release_notes/old/v1.21/index.html | 2 +
.../release_notes/old/v1.22/index.html | 2 +
.../release_notes/old/v1.23/index.html | 2 +
.../release_notes/old/v1.24/index.html | 2 +
.../current/release_notes/v1.25/index.html | 92 ++-
.../current/release_notes/v1.26/index.html | 124 +++-
.../current/replica_cluster/index.html | 2 +
.../current/replication/index.html | 2 +
.../current/resource_management/index.html | 19 +-
.../current/rolling_update/index.html | 34 +-
.../current/samples/cluster-example.yaml | 1 -
.../documentation/current/samples/index.html | 2 +
.../current/scheduling/index.html | 2 +
assets/documentation/current/search.html | 2 +
.../current/search/search_index.json | 2 +-
.../documentation/current/security/index.html | 2 +
.../current/service_management/index.html | 2 +
assets/documentation/current/sitemap.xml.gz | Bin 127 -> 127 bytes
.../current/ssl_connections/index.html | 2 +
.../documentation/current/storage/index.html | 2 +
.../current/supported_releases/index.html | 5 +-
.../current/tablespaces/index.html | 7 +
.../current/troubleshooting/index.html | 9 +-
.../current/use_cases/index.html | 2 +
.../current/wal_archiving/index.html | 2 +
content/docs/1.25.md | 6 +-
content/docs/1.26.md | 6 +-
239 files changed, 3595 insertions(+), 233 deletions(-)
create mode 100644 assets/documentation/1.25/cncf-projects/cilium/index.html
create mode 100644 assets/documentation/1.26/cncf-projects/cilium/index.html
create mode 100644 assets/documentation/current/cncf-projects/cilium/index.html
diff --git a/assets/documentation/1.25/404.html b/assets/documentation/1.25/404.html
index 599971a43..afefc881f 100644
--- a/assets/documentation/1.25/404.html
+++ b/assets/documentation/1.25/404.html
@@ -265,6 +265,8 @@
Appendixes
diff --git a/assets/documentation/1.25/appendixes/object_stores/index.html b/assets/documentation/1.25/appendixes/object_stores/index.html
index 02cf0f8b1..5728a7540 100644
--- a/assets/documentation/1.25/appendixes/object_stores/index.html
+++ b/assets/documentation/1.25/appendixes/object_stores/index.html
@@ -272,6 +272,8 @@
Appendixes
@@ -729,7 +731,7 @@ MinIO Gateway
@@ -753,7 +755,7 @@ MinIO Gateway
- « Previous
+ « Previous
diff --git a/assets/documentation/1.25/applications/index.html b/assets/documentation/1.25/applications/index.html
index 554cbcb82..e7d2ebccc 100644
--- a/assets/documentation/1.25/applications/index.html
+++ b/assets/documentation/1.25/applications/index.html
@@ -280,6 +280,8 @@
Appendixes
+The FQDN to be used in the URIs is calculated using the Kubernetes cluster
+domain specified in the KUBERNETES_CLUSTER_DOMAIN configuration parameter.
+See the operator configuration documentation for more information
+about that.
The -app credentials are the ones that should be used by applications
connecting to the PostgreSQL cluster, and correspond to the user owning the
database.
diff --git a/assets/documentation/1.25/architecture/index.html b/assets/documentation/1.25/architecture/index.html
index 7f519e00b..8e1aedee6 100644
--- a/assets/documentation/1.25/architecture/index.html
+++ b/assets/documentation/1.25/architecture/index.html
@@ -302,6 +302,8 @@
Appendixes
diff --git a/assets/documentation/1.25/backup/index.html b/assets/documentation/1.25/backup/index.html
index c4d894037..3f52b855f 100644
--- a/assets/documentation/1.25/backup/index.html
+++ b/assets/documentation/1.25/backup/index.html
@@ -286,6 +286,8 @@
Appendixes
diff --git a/assets/documentation/1.25/backup_barmanobjectstore/index.html b/assets/documentation/1.25/backup_barmanobjectstore/index.html
index 8cb1189bf..2f3b43b44 100644
--- a/assets/documentation/1.25/backup_barmanobjectstore/index.html
+++ b/assets/documentation/1.25/backup_barmanobjectstore/index.html
@@ -284,6 +284,8 @@
Appendixes
diff --git a/assets/documentation/1.25/backup_recovery/index.html b/assets/documentation/1.25/backup_recovery/index.html
index 81a26638b..1750fc9e7 100644
--- a/assets/documentation/1.25/backup_recovery/index.html
+++ b/assets/documentation/1.25/backup_recovery/index.html
@@ -272,6 +272,8 @@
Appendixes
diff --git a/assets/documentation/1.25/backup_volumesnapshot/index.html b/assets/documentation/1.25/backup_volumesnapshot/index.html
index 681944442..ed81aa26c 100644
--- a/assets/documentation/1.25/backup_volumesnapshot/index.html
+++ b/assets/documentation/1.25/backup_volumesnapshot/index.html
@@ -300,6 +300,8 @@
Appendixes
diff --git a/assets/documentation/1.25/before_you_start/index.html b/assets/documentation/1.25/before_you_start/index.html
index 4325d175e..be3f6b9b4 100644
--- a/assets/documentation/1.25/before_you_start/index.html
+++ b/assets/documentation/1.25/before_you_start/index.html
@@ -282,6 +282,8 @@
Appendixes
diff --git a/assets/documentation/1.25/benchmarking/index.html b/assets/documentation/1.25/benchmarking/index.html
index 3a548e8c2..bc216529e 100644
--- a/assets/documentation/1.25/benchmarking/index.html
+++ b/assets/documentation/1.25/benchmarking/index.html
@@ -278,6 +278,8 @@
Appendixes
diff --git a/assets/documentation/1.25/bootstrap/index.html b/assets/documentation/1.25/bootstrap/index.html
index e718d397f..f095c1aa6 100644
--- a/assets/documentation/1.25/bootstrap/index.html
+++ b/assets/documentation/1.25/bootstrap/index.html
@@ -312,6 +312,8 @@
Appendixes
+Only one bootstrap method can be specified in the manifest.
+Attempting to define multiple bootstrap methods will result in validation errors.
In contrast to the initdb method, both recovery and pg_basebackup
create a new cluster based on another one (either offline or online) and can be
used to spin up replica clusters. They both rely on the definition of external
diff --git a/assets/documentation/1.25/certificates/index.html b/assets/documentation/1.25/certificates/index.html
index 8b6689989..ee7e7b9f8 100644
--- a/assets/documentation/1.25/certificates/index.html
+++ b/assets/documentation/1.25/certificates/index.html
@@ -314,6 +314,8 @@
Appendixes
diff --git a/assets/documentation/1.25/cloudnative-pg.v1/index.html b/assets/documentation/1.25/cloudnative-pg.v1/index.html
index 07d432f6f..a74c07567 100644
--- a/assets/documentation/1.25/cloudnative-pg.v1/index.html
+++ b/assets/documentation/1.25/cloudnative-pg.v1/index.html
@@ -508,6 +508,8 @@
Appendixes
@@ -2710,6 +2712,13 @@ ClusterStatus
WAL file, and Time of latest checkpoint
+publicationName [Required]
diff --git a/assets/documentation/1.25/cluster_conf/index.html b/assets/documentation/1.25/cluster_conf/index.html
index a29c6bc26..07713a4a8 100644
--- a/assets/documentation/1.25/cluster_conf/index.html
+++ b/assets/documentation/1.25/cluster_conf/index.html
@@ -286,6 +286,8 @@
Appendixes
diff --git a/assets/documentation/1.25/cncf-projects/cilium/index.html b/assets/documentation/1.25/cncf-projects/cilium/index.html
new file mode 100644
index 000000000..408e8b772
--- /dev/null
+++ b/assets/documentation/1.25/cncf-projects/cilium/index.html
@@ -0,0 +1,593 @@
+
+
+
+
+
+
+
+ Cilium - CloudNativePG v1.25
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ CloudNativePG v1.25
+
+
+
+
+
+
+ CNCF Projects Integrations
+ Cilium
+
+
+
+
+
+
+
+
+
Cilium
+
About
+
Cilium is a CNCF Graduated project that was accepted as
+an Incubating project in 2021 and graduated in 2023. It was originally created
+by Isovalent. It is an advanced networking, security, and observability
+solution for cloud native environments, built on top of
+eBPF technology. Cilium manages network traffic in
+Kubernetes clusters by dynamically injecting eBPF programs into the Linux
+Kernel, enabling low-latency, high-performance communication, and enforcing
+fine-grained security policies.
+
Key features of Cilium:
+
+Advanced L3-L7 security policies for fine-grained network traffic control
+Efficient, kernel-level traffic management via eBPF
+Service Mesh integration (Cilium Service Mesh)
+Support for both Kubernetes NetworkPolicy and CiliumNetworkPolicy
+Built-in observability and monitoring with Hubble
+
+
To install Cilium in your environment, follow the instructions in the documentation:
+https://docs.cilium.io/en/stable/gettingstarted/k8s-install-default/
+
Pod-to-Pod Network Security with CloudNativePG and Cilium
+
Kubernetes’ default behavior is to allow traffic between any two Pods in the cluster network.
+Cilium provides advanced L3/L4 network security using the CiliumNetworkPolicy resource. This
+enables fine-grained control over network traffic between Pods within a Kubernetes cluster. It is
+especially useful for securing communication between application workloads and backend
+services.
+
In the following examples, we demonstrate how Cilium can be used to secure a
+CloudNativePG PostgreSQL instance by restricting ingress traffic to only
+authorized Pods.
+
+
Important
+
Before proceeding, ensure that the cluster-example Postgres cluster is up
+and running in your environment.
+
+
Default Deny Behavior in Cilium
+
By default, Cilium does not deny all traffic unless explicitly configured
+to do so. In contrast to Kubernetes NetworkPolicy, which uses a deny-by-default
+model once a policy is present in a namespace, Cilium provides more flexible
+control over default deny behavior.
+
To enforce a default deny posture with Cilium, you need to explicitly create a
+policy that denies all traffic to a set of Pods unless otherwise allowed. This
+is commonly achieved by using an empty ingress section in combination
+with endpointSelector, or by enabling --enable-default-deny at the
+Cilium agent level for broader enforcement.
+
A minimal example of a default deny policy:
+
apiVersion: cilium.io/v2
+kind: CiliumNetworkPolicy
+metadata:
+ name: default-deny
+ namespace: default
+spec:
+ description: "Default deny all ingress traffic to all Pods in this namespace"
+ endpointSelector: {}
+ ingress: []
+
+
Making Cilium Network Policies work with CloudNativePG Operator
+
When working with a network policy, Cilium or not, the first step is to make
+sure that the operator can reach the Pods in the target namespace. This is
+important because the operator needs to be able to perform checks and actions
+on the Pods, and one of those actions requires access to the port 8000 on the
+Pods to get the current status of the PostgreSQL instance running inside.
+
The following CiliumNetworkPolicy allows the operator to access the Pods in
+the target default namespace:
+
apiVersion: cilium.io/v2
+kind: CiliumNetworkPolicy
+metadata:
+ name: cnpg-operator-access
+ namespace: default
+spec:
+ description: "Allow CloudNativePG operator access to any pod in the target namespace"
+ endpointSelector: {}
+ ingress:
+ - fromEndpoints:
+ - matchLabels:
+ io.kubernetes.pod.namespace: cnpg-system
+ toPorts:
+ - ports:
+ - port: "8000"
+ protocol: TCP
+
+
+
Important
+
The cnpg-system namespace is the default namespace for the operator when
+using the YAML manifests. If the operator was installed using a different
+process (Helm, OLM, etc.), the namespace may be different. Make sure to adjust
+the namespace properly.
+
+
Allowing access between cluster Pods
+
Since the default policy is "deny all", we need to explicitly allow access
+between the cluster Pods in the same namespace. We will improve our previous
+policy by adding the required ingress rule:
+
apiVersion: cilium.io/v2
+kind: CiliumNetworkPolicy
+metadata:
+ name: cnpg-cluster-internal-access
+ namespace: default
+spec:
+ description: "Allow CloudNativePG operator access and connection between pods in the same namespace"
+ endpointSelector: {}
+ ingress:
+ - fromEndpoints:
+ - matchLabels:
+ io.kubernetes.pod.namespace: cnpg-system
+ - matchLabels:
+ io.kubernetes.pod.namespace: default
+ cnpg.io/cluster: cluster-example
+ toPorts:
+ - ports:
+ - port: "8000"
+ protocol: TCP
+ - port: "5432"
+ protocol: TCP
+
+
The policy allows access from cnpg-system Pods and from default namespace
+Pods that also belong to cluster-example. The matchLabels selector requires
+Pods to have the complete set of listed labels. Missing even one label means
+the Pod will not match.
+
Restricting Access to PostgreSQL with Cilium
+
In this example, we define a CiliumNetworkPolicy that allows only Pods
+labeled role=backend in the default namespace to connect to a PostgreSQL
+cluster named cluster-example. All other ingress traffic is blocked by
+default.
+
apiVersion: cilium.io/v2
+kind: CiliumNetworkPolicy
+metadata:
+ name: postgres-access-backend-label
+ namespace: default
+spec:
+ description: "Allow PostgreSQL access on port 5432 from Pods with role=backend"
+ endpointSelector:
+ matchLabels:
+ cnpg.io/cluster: cluster-example
+ ingress:
+ - fromEndpoints:
+ - matchLabels:
+ role: backend
+ toPorts:
+ - ports:
+ - port: "5432"
+ protocol: TCP
+
+
This CiliumNetworkPolicy ensures that only Pods labeled with role=backend
+can access the PostgreSQL instance managed by CloudNativePG via port 5432 in
+the default namespace.
+
In the following policy, we demonstrate how to allow ingress traffic to port
+5432 of a PostgreSQL cluster named cluster-example, only from Pods with the
+label role=backend in any namespace.
+
apiVersion: cilium.io/v2
+kind: CiliumNetworkPolicy
+metadata:
+ name: postgres-access-backend-any-ns
+ namespace: default
+spec:
+ description: "Allow PostgreSQL access on port 5432 from Pods with role=backend in any namespace"
+ endpointSelector:
+ matchLabels:
+ cnpg.io/cluster: cluster-example
+ ingress:
+ - fromEndpoints:
+ - labelSelector:
+ matchLabels:
+ role: backend
+ matchExpressions:
+ - key: io.kubernetes.pod.namespace
+ operator: Exists
+ toPorts:
+ - ports:
+ - port: "5432"
+ protocol: TCP
+
+
The following example allows ingress traffic to port 5432 of the
+cluster-example cluster (located in the default namespace) from any Pods in
+the backend namespace.
+
apiVersion: cilium.io/v2
+kind: CiliumNetworkPolicy
+metadata:
+ name: postgres-access-backend-namespace
+ namespace: default
+spec:
+ description: "Allow PostgreSQL access on port 5432 from any Pods in the backend namespace"
+ endpointSelector:
+ matchLabels:
+ cnpg.io/cluster: cluster-example
+ ingress:
+ - fromEndpoints:
+ - matchLabels:
+ io.kubernetes.pod.namespace: backend
+ toPorts:
+ - ports:
+ - port: "5432"
+ protocol: TCP
+
+
Using Cilium’s L3/L4 policy model, we define a CiliumNetworkPolicy that
+explicitly allows ingress traffic to cluster Pods only from application Pods in
+the backend namespace. All other traffic is implicitly denied unless
+explicitly permitted by additional policies.
+
The following example allows ingress traffic to port 5432 of the
+cluster-example cluster (located in the default namespace) from any source
+within the Kubernetes cluster.
+
apiVersion: cilium.io/v2
+kind: CiliumNetworkPolicy
+metadata:
+ name: postgres-access-cluster-wide
+ namespace: default
+spec:
+ description: "Allow ingress traffic to port 5432 of the cluster-example from any pods within the Kubernetes cluster"
+ endpointSelector:
+ matchLabels:
+ cnpg.io/cluster: cluster-example
+ ingress:
+ - fromEntities:
+ - cluster
+ toPorts:
+ - ports:
+ - port: "5432"
+ protocol: TCP
+
+
You may consider using editor.networkpolicy.io ,
+a visual and interactive tool that simplifies the creation and validation of
+Cilium Network Policies. It’s especially helpful for avoiding misconfigurations
+and understanding traffic rules more clearly by presenting in a visual way.
+
With these policies, you've established baseline access controls for
+PostgreSQL. You can layer additional egress or audit rules using Cilium's
+policy language or extend to L7 enforcement with Envoy.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/documentation/1.25/cncf-projects/external-secrets/index.html b/assets/documentation/1.25/cncf-projects/external-secrets/index.html
index 8d46a9dcf..11a33cca5 100644
--- a/assets/documentation/1.25/cncf-projects/external-secrets/index.html
+++ b/assets/documentation/1.25/cncf-projects/external-secrets/index.html
@@ -300,6 +300,8 @@
+ Cilium
+
Appendixes
@@ -561,7 +563,7 @@ Verifying the Configuration
@@ -588,7 +590,7 @@ Verifying the Configuration
« Previous
- Next »
+ Next »
diff --git a/assets/documentation/1.25/connection_pooling/index.html b/assets/documentation/1.25/connection_pooling/index.html
index dd12940bf..4c11870d8 100644
--- a/assets/documentation/1.25/connection_pooling/index.html
+++ b/assets/documentation/1.25/connection_pooling/index.html
@@ -310,6 +310,8 @@
Appendixes
diff --git a/assets/documentation/1.25/container_images/index.html b/assets/documentation/1.25/container_images/index.html
index 15b1eb54c..d714af412 100644
--- a/assets/documentation/1.25/container_images/index.html
+++ b/assets/documentation/1.25/container_images/index.html
@@ -276,6 +276,8 @@
Appendixes
diff --git a/assets/documentation/1.25/controller/index.html b/assets/documentation/1.25/controller/index.html
index 487c9b46f..68496d33d 100644
--- a/assets/documentation/1.25/controller/index.html
+++ b/assets/documentation/1.25/controller/index.html
@@ -282,6 +282,8 @@
Appendixes
diff --git a/assets/documentation/1.25/database_import/index.html b/assets/documentation/1.25/database_import/index.html
index 1c4ad65e8..0e57f33e9 100644
--- a/assets/documentation/1.25/database_import/index.html
+++ b/assets/documentation/1.25/database_import/index.html
@@ -81,6 +81,8 @@
The monolith type
+ A practical example
+
Import optimizations
Customizing pg_dump and pg_restore Behavior
@@ -286,6 +288,8 @@
Appendixes
@@ -372,14 +376,14 @@ How it works
databases and different users, imported from the source cluster
-The first import method is available via the microservice type, while the
-latter by the monolith type.
+The first import method is available via the microservice type, the
+second via the monolith type.
The microservice type
@@ -397,6 +401,9 @@ The microservice type
database via the postImportApplicationSQL parameter
execution of ANALYZE VERBOSE on the imported database
+In the figure below, a single PostgreSQL cluster containing N databases is
+imported into separate CloudNativePG clusters, with each cluster using a
+microservice import for one of the N source databases.
For example, the YAML below creates a new 3 instance PostgreSQL cluster (latest
available major version at the time the operator was released) called
@@ -447,7 +454,7 @@
The microservice type
and unsupported versions of Postgres too, giving you the chance to move your
legacy data to a better system, inside Kubernetes.
This is the main reason why we used 9.6 in the examples of this section.
-We'd be interested to hear from you should you experience any issues in this area.
+We'd be interested to hear from you, should you experience any issues in this area.
There are a few things you need to be aware of when using the microservice type:
@@ -466,6 +473,13 @@ The microservice type
Only one database can be specified inside the initdb.import.databases array
Roles are not imported - and as such they cannot be specified inside initdb.import.roles
+
+
Hint
+
The microservice approach adheres to CloudNativePG conventions and defaults
+for the destination cluster. If you do not set initdb.database or
+initdb.owner for the destination cluster, both parameters will default to
+app.
+
The monolith type
With the monolith approach, you can specify a set of roles and databases you
want to import from the source cluster into the destination cluster.
@@ -531,7 +545,8 @@
The monolith type
that needs to run pg_dump and retrieve roles information (superuser is
OK)
Currently, the pg_dump -Fd result is stored temporarily inside the dumps
- folder in the PGDATA volume, so there should be enough available space to
+ folder in the PGDATA volume of the destination cluster's instances, so
+ there should be enough available space to
temporarily contain the dump result on the assigned node, as well as the
restored data and indexes. Once the import operation is completed, this
folder is automatically deleted by the operator.
@@ -549,7 +564,107 @@ The monolith type
and those databases not allowing connections
After the clone procedure is done, ANALYZE VERBOSE is executed for every
database.
-postImportApplicationSQL field is not supported
+The postImportApplicationSQL field is not supported
+
+
+
Hint
+
The databases and their owners are preserved exactly as they exist in the
+source cluster—no app database or user will be created during import. If your
+bootstrap.initdb stanza specifies custom database and owner values that
+do not match any of the databases or users being imported, the instance
+manager will create a new, empty application database and owner role with those
+specified names, while leaving the imported databases and owners unchanged.
+
+A practical example
+There is nothing to stop you from using the monolith approach to import a
+single database. It is interesting to see how the results of doing so would
+differ from using the microservice approach.
+Given a source cluster, for example the following, with a database named
+mydb owned by role me:
+apiVersion: postgresql.cnpg.io/v1
+kind: Cluster
+metadata:
+ name: cluster-example
+spec:
+ instances: 1
+
+ postgresql:
+ pg_hba:
+ - host all all all trust
+
+ storage:
+ size: 1Gi
+
+ bootstrap:
+ initdb:
+ database: mydb
+ owner: me
+
+We can import it via microservice:
+apiVersion: postgresql.cnpg.io/v1
+kind: Cluster
+metadata:
+ name: cluster-example-microservice
+spec:
+ instances: 1
+
+ storage:
+ size: 1Gi
+
+ bootstrap:
+ initdb:
+ import:
+ type: microservice
+ databases:
+ - mydb
+ source:
+ externalCluster: cluster-example
+
+ externalClusters:
+ - name: cluster-example
+ connectionParameters:
+ host: cluster-example-rw
+ dbname: postgres
+
+as well as via monolith:
+apiVersion: postgresql.cnpg.io/v1
+kind: Cluster
+metadata:
+ name: cluster-example-monolith
+spec:
+ instances: 1
+
+ storage:
+ size: 1Gi
+
+ bootstrap:
+ initdb:
+ import:
+ type: monolith
+ databases:
+ - mydb
+ roles:
+ - me
+ source:
+ externalCluster: cluster-example
+
+ externalClusters:
+ - name: cluster-example
+ connectionParameters:
+ host: cluster-example-rw
+ dbname: postgres
+
+In both cases, the database's contents will be imported, but:
+
+In the microservice case, the imported database's name and owner both become
+ app, or whichever configuration for the fields database and owner are
+ set in the bootstrap.initdb stanza.
+In the monolith case, the database and owner are kept exactly as in the source
+ cluster, i.e. mydb and me respectively. No app database nor user will be
+ created. If there are custom settings for database and owner in the
+ bootstrap.initdb stanza that don't match the source databases/owners to
+ import, the instance manager will create a new empty application database and
+ owner role, but will leave the imported databases/owners intact.
Import optimizations
During the logical import of a database, CloudNativePG optimizes the
diff --git a/assets/documentation/1.25/declarative_database_management/index.html b/assets/documentation/1.25/declarative_database_management/index.html
index 2cd13fbac..aaa5f0bd7 100644
--- a/assets/documentation/1.25/declarative_database_management/index.html
+++ b/assets/documentation/1.25/declarative_database_management/index.html
@@ -312,6 +312,8 @@
Appendixes
diff --git a/assets/documentation/1.25/declarative_hibernation/index.html b/assets/documentation/1.25/declarative_hibernation/index.html
index fd181ec5c..0bf17f43d 100644
--- a/assets/documentation/1.25/declarative_hibernation/index.html
+++ b/assets/documentation/1.25/declarative_hibernation/index.html
@@ -278,6 +278,8 @@
Appendixes
diff --git a/assets/documentation/1.25/declarative_role_management/index.html b/assets/documentation/1.25/declarative_role_management/index.html
index 4b6fef630..a1a474e73 100644
--- a/assets/documentation/1.25/declarative_role_management/index.html
+++ b/assets/documentation/1.25/declarative_role_management/index.html
@@ -286,6 +286,8 @@
Appendixes
diff --git a/assets/documentation/1.25/e2e/index.html b/assets/documentation/1.25/e2e/index.html
index 63e5d6f18..7ea5416ff 100644
--- a/assets/documentation/1.25/e2e/index.html
+++ b/assets/documentation/1.25/e2e/index.html
@@ -274,6 +274,8 @@
Appendixes
diff --git a/assets/documentation/1.25/failover/index.html b/assets/documentation/1.25/failover/index.html
index 97c9e6761..68064f2b7 100644
--- a/assets/documentation/1.25/failover/index.html
+++ b/assets/documentation/1.25/failover/index.html
@@ -278,6 +278,8 @@
Appendixes
diff --git a/assets/documentation/1.25/failure_modes/index.html b/assets/documentation/1.25/failure_modes/index.html
index 780f238a5..fbc22cc4e 100644
--- a/assets/documentation/1.25/failure_modes/index.html
+++ b/assets/documentation/1.25/failure_modes/index.html
@@ -288,6 +288,8 @@
Appendixes
diff --git a/assets/documentation/1.25/faq/index.html b/assets/documentation/1.25/faq/index.html
index 85bb5ef3f..b4431dbf5 100644
--- a/assets/documentation/1.25/faq/index.html
+++ b/assets/documentation/1.25/faq/index.html
@@ -280,6 +280,8 @@
Appendixes
diff --git a/assets/documentation/1.25/fencing/index.html b/assets/documentation/1.25/fencing/index.html
index 7e11f1b34..3e9295af6 100644
--- a/assets/documentation/1.25/fencing/index.html
+++ b/assets/documentation/1.25/fencing/index.html
@@ -280,6 +280,8 @@
Appendixes
diff --git a/assets/documentation/1.25/image_catalog/index.html b/assets/documentation/1.25/image_catalog/index.html
index d8f88490d..68477b454 100644
--- a/assets/documentation/1.25/image_catalog/index.html
+++ b/assets/documentation/1.25/image_catalog/index.html
@@ -282,6 +282,8 @@
Appendixes
diff --git a/assets/documentation/1.25/index.html b/assets/documentation/1.25/index.html
index 7a21294fe..0ccb40840 100644
--- a/assets/documentation/1.25/index.html
+++ b/assets/documentation/1.25/index.html
@@ -288,6 +288,8 @@
Appendixes
@@ -372,7 +374,11 @@ Operands
PGDG supported versions of PostgreSQL ,
across multiple architectures, directly from the
postgres-containers project's GitHub Container Registry .
-Daily jobs ensure that critical vulnerabilities (CVEs) in the entire stack are
+
The minimal
+and standard
+container images are signed and include SBOM and provenance attestations,
+provided separately for each architecture.
+Weekly jobs ensure that critical vulnerabilities (CVEs) in the entire stack are
promptly addressed.
Additionally, the community provides images for the PostGIS extension .
Main features
@@ -501,5 +507,5 @@ About this guide
diff --git a/assets/documentation/1.25/installation_upgrade/index.html b/assets/documentation/1.25/installation_upgrade/index.html
index ab8fe63dd..e34819beb 100644
--- a/assets/documentation/1.25/installation_upgrade/index.html
+++ b/assets/documentation/1.25/installation_upgrade/index.html
@@ -308,6 +308,8 @@
Appendixes
@@ -344,10 +346,10 @@ Installation on Kubernetes
Directly using the operator manifest
The operator can be installed like any other resource in Kubernetes,
through a YAML manifest applied via kubectl.
-You can install the latest operator manifest
+
You can install the latest operator manifest
for this minor release as follows:
kubectl apply --server-side -f \
- https://raw.githubusercontent.com/cloudnative-pg/cloudnative-pg/release-1.25/releases/cnpg-1.25.2.yaml
+ https://raw.githubusercontent.com/cloudnative-pg/cloudnative-pg/release-1.25/releases/cnpg-1.25.3.yaml
You can verify that with:
kubectl get deployment -n cnpg-system cnpg-controller-manager
diff --git a/assets/documentation/1.25/instance_manager/index.html b/assets/documentation/1.25/instance_manager/index.html
index 89da70ac8..b00c18e39 100644
--- a/assets/documentation/1.25/instance_manager/index.html
+++ b/assets/documentation/1.25/instance_manager/index.html
@@ -294,6 +294,8 @@
Appendixes
diff --git a/assets/documentation/1.25/kubectl-plugin/index.html b/assets/documentation/1.25/kubectl-plugin/index.html
index f304848ab..04b60a4aa 100644
--- a/assets/documentation/1.25/kubectl-plugin/index.html
+++ b/assets/documentation/1.25/kubectl-plugin/index.html
@@ -374,6 +374,8 @@
Appendixes
@@ -428,9 +430,9 @@ Using the Debian or RedHat packages
As a result, you can follow standard practices and instructions to install
them in your systems.
Debian packages
- For example, let's install the 1.25.2 release of the plugin, for an Intel based
+
For example, let's install the 1.25.3 release of the plugin, for an Intel based
64 bit server. First, we download the right .deb file.
- wget https://github.com/cloudnative-pg/cloudnative-pg/releases/download/v1.25.2/kubectl-cnpg_1.25.2_linux_x86_64.deb \
+wget https://github.com/cloudnative-pg/cloudnative-pg/releases/download/v1.25.3/kubectl-cnpg_1.25.3_linux_x86_64.deb \
--output-document kube-plugin.deb
Then, with superuser privileges, install from the local file using dpkg:
@@ -438,13 +440,13 @@ Debian packages
Selecting previously unselected package cnpg.
(Reading database ... 6688 files and directories currently installed.)
Preparing to unpack kube-plugin.deb ...
-Unpacking cnpg (1.25.2) ...
-Setting up cnpg (1.25.2) ...
+Unpacking cnpg (1.25.3) ...
+Setting up cnpg (1.25.3) ...
RPM packages
-As in the example for .rpm packages, let's install the 1.25.2 release for an
+
As in the example for .rpm packages, let's install the 1.25.3 release for an
Intel 64 bit machine. Note the --output flag to provide a file name.
-curl -L https://github.com/cloudnative-pg/cloudnative-pg/releases/download/v1.25.2/kubectl-cnpg_1.25.2_linux_x86_64.rpm \
+curl -L https://github.com/cloudnative-pg/cloudnative-pg/releases/download/v1.25.3/kubectl-cnpg_1.25.3_linux_x86_64.rpm \
--output kube-plugin.rpm
Then, with superuser privileges, install with yum, and you're ready to use:
@@ -455,7 +457,7 @@ RPM packages
Package Architecture Version Repository Size
====================================================================================================
Installing:
- cnpg x86_64 1.25.2 @commandline 20 M
+ cnpg x86_64 1.25.3 @commandline 20 M
Transaction Summary
====================================================================================================
@@ -646,9 +648,9 @@ Status
Instances status
Name Current LSN Replication role Status QoS Manager Version Node
---- ----------- ---------------- ------ --- --------------- ----
-sandbox-1 0/604DE38 Primary OK BestEffort 1.25.2 k8s-eu-worker
-sandbox-2 0/604DE38 Standby (async) OK BestEffort 1.25.2 k8s-eu-worker2
-sandbox-3 0/604DE38 Standby (async) OK BestEffort 1.25.2 k8s-eu-worker
+sandbox-1 0/604DE38 Primary OK BestEffort 1.25.3 k8s-eu-worker
+sandbox-2 0/604DE38 Standby (async) OK BestEffort 1.25.3 k8s-eu-worker2
+sandbox-3 0/604DE38 Standby (async) OK BestEffort 1.25.3 k8s-eu-worker
If you require more detailed status information, use the --verbose option (or
-v for short). The level of detail increases each time the flag is repeated:
@@ -697,9 +699,9 @@ Status
Instances status
Name Current LSN Replication role Status QoS Manager Version Node
---- ----------- ---------------- ------ --- --------------- ----
-sandbox-1 0/6053720 Primary OK BestEffort 1.25.2 k8s-eu-worker
-sandbox-2 0/6053720 Standby (async) OK BestEffort 1.25.2 k8s-eu-worker2
-sandbox-3 0/6053720 Standby (async) OK BestEffort 1.25.2 k8s-eu-worker
+sandbox-1 0/6053720 Primary OK BestEffort 1.25.3 k8s-eu-worker
+sandbox-2 0/6053720 Standby (async) OK BestEffort 1.25.3 k8s-eu-worker2
+sandbox-3 0/6053720 Standby (async) OK BestEffort 1.25.3 k8s-eu-worker
With an additional -v (e.g. kubectl cnpg status sandbox -v -v), you can
also view PostgreSQL configuration, HBA settings, and certificates.
@@ -867,12 +869,12 @@ report Operator
and previous logs are available, it will show them both.
====== Beginning of Previous Log =====
-2023-03-28T12:56:41.251711811Z {"level":"info","ts":"2023-03-28T12:56:41Z","logger":"setup","msg":"Starting CloudNativePG Operator","version":"1.25.2","build":{"Version":"1.25.2+dev107","Commit":"cc9bab17","Date":"2023-03-28"}}
+2023-03-28T12:56:41.251711811Z {"level":"info","ts":"2023-03-28T12:56:41Z","logger":"setup","msg":"Starting CloudNativePG Operator","version":"1.25.3","build":{"Version":"1.25.3+dev107","Commit":"cc9bab17","Date":"2023-03-28"}}
2023-03-28T12:56:41.251851909Z {"level":"info","ts":"2023-03-28T12:56:41Z","logger":"setup","msg":"Starting pprof HTTP server","addr":"0.0.0.0:6060"}
<snipped …>
====== End of Previous Log =====
-2023-03-28T12:57:09.854306024Z {"level":"info","ts":"2023-03-28T12:57:09Z","logger":"setup","msg":"Starting CloudNativePG Operator","version":"1.25.2","build":{"Version":"1.25.2+dev107","Commit":"cc9bab17","Date":"2023-03-28"}}
+2023-03-28T12:57:09.854306024Z {"level":"info","ts":"2023-03-28T12:57:09Z","logger":"setup","msg":"Starting CloudNativePG Operator","version":"1.25.3","build":{"Version":"1.25.3+dev107","Commit":"cc9bab17","Date":"2023-03-28"}}
2023-03-28T12:57:09.854363943Z {"level":"info","ts":"2023-03-28T12:57:09Z","logger":"setup","msg":"Starting pprof HTTP server","addr":"0.0.0.0:6060"}
If the operator hasn't been restarted, you'll still see the ====== Begin …
diff --git a/assets/documentation/1.25/kubernetes_upgrade/index.html b/assets/documentation/1.25/kubernetes_upgrade/index.html
index fe1330f6c..c5f4cfe94 100644
--- a/assets/documentation/1.25/kubernetes_upgrade/index.html
+++ b/assets/documentation/1.25/kubernetes_upgrade/index.html
@@ -290,6 +290,8 @@
Appendixes
diff --git a/assets/documentation/1.25/labels_annotations/index.html b/assets/documentation/1.25/labels_annotations/index.html
index a5d127078..620f9b593 100644
--- a/assets/documentation/1.25/labels_annotations/index.html
+++ b/assets/documentation/1.25/labels_annotations/index.html
@@ -284,6 +284,8 @@
Appendixes
diff --git a/assets/documentation/1.25/logging/index.html b/assets/documentation/1.25/logging/index.html
index 1d6b61781..cc3b75f82 100644
--- a/assets/documentation/1.25/logging/index.html
+++ b/assets/documentation/1.25/logging/index.html
@@ -284,6 +284,8 @@
Appendixes
diff --git a/assets/documentation/1.25/logical_replication/index.html b/assets/documentation/1.25/logical_replication/index.html
index 5b41a9039..161313b9f 100644
--- a/assets/documentation/1.25/logical_replication/index.html
+++ b/assets/documentation/1.25/logical_replication/index.html
@@ -310,6 +310,8 @@
Appendixes
diff --git a/assets/documentation/1.25/monitoring/index.html b/assets/documentation/1.25/monitoring/index.html
index 58e779020..6dc9b3ad0 100644
--- a/assets/documentation/1.25/monitoring/index.html
+++ b/assets/documentation/1.25/monitoring/index.html
@@ -318,6 +318,8 @@
Appendixes
diff --git a/assets/documentation/1.25/networking/index.html b/assets/documentation/1.25/networking/index.html
index 988924655..93f7b1e9d 100644
--- a/assets/documentation/1.25/networking/index.html
+++ b/assets/documentation/1.25/networking/index.html
@@ -278,6 +278,8 @@
Appendixes
diff --git a/assets/documentation/1.25/operator_capability_levels/index.html b/assets/documentation/1.25/operator_capability_levels/index.html
index 23f64c1d2..f145121a2 100644
--- a/assets/documentation/1.25/operator_capability_levels/index.html
+++ b/assets/documentation/1.25/operator_capability_levels/index.html
@@ -406,6 +406,8 @@
Appendixes
diff --git a/assets/documentation/1.25/operator_conf/index.html b/assets/documentation/1.25/operator_conf/index.html
index a4c48fb67..1c730aaff 100644
--- a/assets/documentation/1.25/operator_conf/index.html
+++ b/assets/documentation/1.25/operator_conf/index.html
@@ -284,6 +284,8 @@
Appendixes