CloudNativePG
v1.28.0Storage & DataThis release adds declarative management and security configuration, changes defaults, broadens supported operations, and includes correctness fixes. It also updates supported Kubernetes and PostgreSQL versions and adds configuration options for backups, TLS, monitoring, and reporting.
Check if affected (3)
breakingThe replica
tcp_user_timeoutdefaultApplies if you run replica instances.
The default
tcp_user_timeoutis now 5 seconds for replica instances, improving network failure detection.breakingCluster-wide
postgresandoperatoruser settings, replacedApplies if you configure
postgresoroperator.The previous cluster-wide
postgresandoperatoruser settings are replaced by granularsecurityContextandcontainerSecurityContextconfiguration.breakingThe PgBouncer
auth_dbnamedefaultApplies if you use PgBouncer.
For PgBouncer integration,
auth_dbnameis automatically set to thepgbouncerdatabase, simplifying authentication setup.
All 30 other recorded changesadditions 10 · fixes 9 · value changes 6 · constraints 4 · renames 1
additions (10)
- Introduced comprehensive declarative management for Foreign Data Wrappers (FDW) by extending the
DatabaseCRD. This feature adds the.andspec. fdws .fields, allowing you to manage FDW extensions and their corresponding foreign servers directly from thespec. servers Databaseresource. - Introduced
securityContextat the pod level andcontainerSecurityContextfor individual containers (includingpostgres,init, and sidecars). - Introduced the
alpha.annotation for replica pods.cnpg. io/unrecoverable=true - Introduced a new caching layer for user-defined monitoring queries to reduce load on the PostgreSQL database.
- Allowed providing stage-specific
pg_restoreoptions (preRestore,postRestore,dataRestore) during database import. - Added the PostgreSQL
majorVersionto theBackupobject's status for easier identification and management. - Added the
PGBOUNCER_IMAGE_NAMEoperator configuration parameter to allow overriding the default PgBouncer image. - Added a
--timeoutflag to thekubectl cnpg statuscommand for configuring the timeout for filesystem operations such as calculating cluster size. - Allowed providing fine-grained custom TLS configurations for PgBouncer. The
PoolerCRD was extended withclientTLSSecret,clientCASecret,serverTLSSecret, andserverCASecretfields under..spec. pgbouncer - Added optional TLS support for the operator's metrics server (port 8080). This feature is opt-in and enabled by setting the
METRICS_CERT_DIRenvironment variable, which instructs the operator to look fortls.andcrt tls.files in the specified directory.key
fixes (9)
- Improved resilience of all probe types (liveness, readiness, and startup) to transient Kubernetes API server connectivity issues.
- Fixed the
CheckEmptyWalArchivesafeguard to run correctly when restoring from a volume snapshot using CNPG-I backup/WAL plugins (e.g.,plugin-barman-cloud). - Improved error reporting when ImageCatalog retrieval fails.
- Fixed TLS certificate verification issues when connecting to CNPG-I plugins by adding the
cnpg.annotation.io/pluginServerName - Fixed an issue where the instance manager controller could fail to restart after an error, reporting a "controller already exists" message.
- Fixed incorrect WAL restore path handling in plugins when the destination path is absolute, preventing path duplication issues.
- Fixed the
CREATE PUBLICATIONSQL generation for multi-table publications to be backward-compatible with PostgreSQL 13+. - Fixed backup failures in complex pod definitions by reliably selecting the
postgrescontainer by name instead of by index. - Fixed bugs in
cnpg reportlog collection, especially when fetching previous logs.
value changes (6)
- Promoted the quorum-based failover feature, introduced experimentally in 1.27.0, to a stable API.
- Updated the default PostgreSQL version to
18..1-system-trixie - Updated the default PgBouncer version to **1.25.1** for new
Poolerdeployments. - Adopted standard Kubernetes recommended labels (e.g.,
app.) for all resources generated by CloudNativePG (Clusters, Backups, Poolers, etc.).kubernetes. io/name - Enhanced cluster restore to wait for all init containers to complete before starting the restore process.
- Improved
cnpg reportto generate more shell-friendly file names.
constraints (4)
- Enabled simultaneous image and configuration changes when using
primaryUpdateMethod: restart, allowing you to update the container image (including PostgreSQL version or extensions) and PostgreSQL configuration settings in the same operation. - Enabled
cnpg report operatorto work with minimal permissions by making only the operator deployment required. - Kubernetes 1.34, 1.33, and 1.32
- PostgreSQL 18, 17, 16, 15, and 14 - PostgreSQL 18.1 is the default image
renames (1)
- This data-driven failover mechanism is now configured via the
spec.field, graduating from the previouspostgresql. synchronous. failoverQuorum alpha.annotation.cnpg. io/failoverQuorum
A weekly email arrives when a release needs action. Like the breaking changes in this release.