CloudNativePG
v1.30.0Storage & DataA substantial feature and security release adds Kubernetes and PostgreSQL capabilities while tightening validation, compatibility, and defaults. It also includes correctness fixes and security changes affecting pooled connections, instance-manager endpoints, and role password handling.
Action needed (3)
securitycriticalPooled connection
search_pathpinning, CVE-2026-55769 and GHSA-x8c2-3p4r-v9r6For CVE-2026-55769 and GHSA-x8c2-3p4r-v9r6, the operator now pins
search_path = pg_catalog, public, pg_tempon every pooled connection.securityhighSCRAM-SHA-256 encoding for cleartext role passwords, CVE-2026-55765 and GHSA-w3gf-xc94-wvmj
For CVE-2026-55765 and GHSA-w3gf-xc94-wvmj, the operator now SCRAM-SHA-256 encodes cleartext role passwords.
securityCertificate matching for sensitive instance-manager endpoints, GHSA-7qwx-x8ff-3px9
For GHSA-7qwx-x8ff-3px9, the instance manager rejects requests to sensitive endpoints that do not present a matching certificate.
Check if affected (1)
breakingImmutable
clusterreferencesApplies if you configure
cluster.The
clusterreference is now immutable on theDatabase,Pooler,Publication,Subscription, andScheduledBackupresources.
Plan ahead (2)
deprecatedNative (in-tree) Barman Cloud support removal deferredremoval planned in 1.31.0
Applies if you use
native (in-tree) Barman Cloud support.Native (in-tree) Barman Cloud support will be removed in CloudNativePG 1.31.0 rather than 1.30.0. The change concerns the Barman Cloud Plugin.
deprecated
status.deprecationlatestGeneratedNode Applies if you use
status..latestGeneratedNode status.is deprecated.latestGeneratedNode
All 48 other recorded changesfixes 33 · additions 9 · value changes 4 · constraints 2
fixes (33)
- validation failures are surfaced in the resource status instead of failing silently later
- Fixed declarative
Database,Publication, andSubscriptionobjects reporting a stale primary-side status forever - Fixed non-sequential pod names
- Fixed deletion of a
Database,Publication, orSubscriptiongetting stuck inTerminating - Fixed a conflicting duplicate
DatabaseorSubscriptionwith adeletereclaim policy dropping the PostgreSQL object owned by the surviving CR - Fixed the
postgressuperuser being left locked out - Fixed backups getting stuck in the
startedphase - Fixed
exec/attachstreaming to negotiate WebSocket with a SPDY fallback - Fixed resource leaks when concurrent
Backupobjects raced - Fixed role reconciliation clearing the password on a PostgreSQL role when the referenced Secret could not be fetched
- Fixed a
ScheduledBackupcontroller loop - Fixed a nil-pointer panic when reconciling a
PoolerwhoseClusterhas been deleted. - Fixed bootstrap log handling so that all named log pipes (
postgres,postgres., andcsv postgres.) get consumersjson - Fixed generation of invalid IPv6 URLs by wrapping the address in square brackets.
- Fixed an external cluster plugin still being treated as active when its configuration set
enabled: false. - Fixed a race during bootstrap recovery from an object store
- Fixed a race where deleting an instance's PVCs could leave the instance permanently stuck
- Fixed a cache race during cluster creation
- Fixed the
pg_basebackupbootstrap path overwriting or failing on a pre-existingPGDATA - Fixed the
Clusterphase flapping betweenHealthyand a plugin-failure phase - Fixed stale certificate data and partial reads after an external server's Secret was rotated
- Fixed plugin connectivity to use the plugin
ServiceFQDN instead of its short name - Fixed excessive operator log noise
- Fixed
spec.accepting keys that are not valid PostgreSQL parameter namespostgresql. parameters - Fixed a switchover deadlock when a WAL-archiver plugin was enabled on an existing cluster
- Fixed a cluster staying in
Setting up primaryindefinitely - Fixed a first-primary bootstrap deadlock
- these values are now rejected at the validating webhook and re-checked at the write site
- Fixed a backup getting stuck in
pendingforever - Fixed a declarative
VolumeSnapshotbackup being permanently marked as failed - Fixed a volume snapshot backup being discarded on a transient instance-manager connection error
- Fixed a replica switchover losing its
status.demotionToken - The metrics-exporter step now runs in a separate transaction.
additions (9)
- introduced a Kubernetes
Leaseobject (named after the cluster) that acts as a mutex serializing primary promotion - introduced a
DatabaseRolecustom resource that manages a PostgreSQL role as a standalone Kubernetes object - a
DatabaseRolecan now include aclientCertificateblock - through the new
spec.fieldpgbouncer. imageCatalogRef - Added TLS support for the
Poolermetrics endpoint via..spec. monitoring. tls. enabled - Added a label selector to the
Clusterscale subresource (status.)selector - now emits a
WarningPrimaryStatusCheckFailedevent on theCluster - Added the
ENABLE_WEBHOOK_NAMESPACE_SUFFIXflag - A new
Initializedcluster condition reports whether the cluster has completed its first bootstrap
value changes (4)
- The operator now reloads a CNPG-i plugin automatically when its pods are rolled
- Pod and PVC names stay stable across instance recreation
- Updated the default PostgreSQL version to 18.4.
- PostgreSQL 18.4 is the default image - PostgreSQL 14 support ends on November 12, 2026
constraints (2)
- Enabled
pg_upgradein-place major upgrades to PostgreSQL 19 or later - Added support for Kubernetes 1.36.
A weekly email arrives when a release needs action. Like the security patches and breaking changes in this release.