What cloudnative-pg/cloudnative-pg shipped
Written by FoxPlug from the repository's own releases; not affiliated with Cloudnative-pg. Paste your own repository in the box below and FoxPlug writes the same weekly update for your product. This page is an automatic summary of the releases, pull requests and commits in github.com/cloudnative-pg/cloudnative-pg; Cloudnative-pg did not write it and does not use or endorse FoxPlug. Every line links to the change it describes.
Get a weekly update like this for your product, free
Week of November 2, 2026
What shipped
- Online volume snapshot backups now skip the separate WAL volume when the archive is guaranteed to hold every WAL file needed for recovery. Pull request #11734
- Object store backups now support SSE-C customer-provided keys through sseCustomerKey in s3Credentials, covering backups, WAL archiving and recovery. Pull request #11775
- A primary stepping down on a stale lease now performs a fast shutdown instead of an immediate one, so unstreamed WAL can still reach the new primary. Pull request #11805
- The primary lease window now starts at the pending failover marker, so failovers no longer pay the lease duration after the election. Pull request #11798
- With the isolation check disabled, a superseded primary now stops when peers report another instance was named target primary. Pull request #11795
- DatabaseRole client certificates can set their own duration and renewBefore instead of using the operator-wide certificate settings. Pull request #11342
- Database schemas accept a permissions field to declaratively grant or revoke USAGE and CREATE privileges. Pull request #10910
- Replicas created from an online backup volume snapshot now start from the backup label and tablespace map stored in the snapshot. Pull request #11847
- The WAL file count and size metrics now match only 24-character segment names, so partial, backup and history files no longer inflate them. Pull request #9967
- Cluster status is no longer rewritten several times a second while a cluster is being created or converging. Pull request #11789
Why it matters
This week improves backup and recovery behaviour and failover handling, which are the areas users depend on most when running clusters in production. It also gives more control over certificate lifetimes and schema privileges and cuts noise in metrics, logs and status writes.
Changelog entry
- Skip the WAL volume snapshot of online backups when the archive holds all WAL needed for recovery. Pull request #11734
- Support SSE-C customer-provided keys in object stores via sseCustomerKey in s3Credentials. Pull request #11775
- Try a fast shutdown when a primary steps down on a stale lease. Pull request #11805
- Start the primary lease window at the pending failover marker. Pull request #11798
- Stop a superseded primary when the isolation check is disabled. Pull request #11795
- Add per-role client certificate duration and renewal window. Pull request #11342
- Add USAGE and CREATE schema privilege grants through the Database permissions field. Pull request #10910
- Start replicas from online snapshot backups using the backup label and tablespace map. Pull request #11847
- Keep a PVC initializing until its bootstrap container reports status. Pull request #11801
- Skip bootstrapping replicas in the standby slots list. Pull request #11802
- Exclude partial and history files from WAL count and size metrics. Pull request #9967
- Avoid repeated spurious writes to the Cluster status. Pull request #11789
This week: online backups skip the separate WAL volume when the archive is complete, SSE-C customer keys work for backup and recovery, stale-lease step-downs now use a fast shutdown, and DatabaseRole certificates can set their own duration.
Changes this week include online volume snapshot backups that leave out the separate WAL volume when the archive is guaranteed to hold the needed WAL files, and SSE-C customer-provided keys for backup, WAL archiving and recovery. A primary stepping down on a stale lease now uses a fast shutdown so unstreamed WAL can reach the new primary, and the lease window starts at the pending marker to shorten failovers. DatabaseRole client certificates can set duration and renewBefore, Database schemas accept USAGE and CREATE grants, replicas from online snapshots start from the stored backup label, and WAL metrics no longer count partial files.
Week of October 26, 2026
What shipped
- Added read-only DBA persona samples and a CloudNativePG-only viewer ClusterRole so a human DBA can get operational access without cluster-admin. Pull request #11684
- Fixed follower parameter verification so a hot standby sensitive parameter removed from the Cluster spec still gets its protective value from
pg_controldatawritten to the configuration. Pull request #11236 - Fixed on-demand backups so setting only one of the immediate-checkpoint and wait-for-archive options still falls back to the cluster online configuration for the other. Pull request #11733
- Changed the bootstrap-instance init container to leave volumes that already hold the instance untouched when a Pod is recreated with its PVCs. Pull request #11608
- Resolved the csi-hostpath deploy directory at runtime in E2E tests instead of hardcoding a path that upstream drops over time. Pull request #11760
- Retried the read-only psql checks in E2E tests that hit dropped exec streams on AKS, including the now-idempotent replication marker insert. Pull request #11747
- Made failing upgrade specs also dump the objects and events of cnpg-system and cert-manager, not just the operator pod. Pull request #11748
- Cleaned up unattached GCP disks carrying the cluster label after the OpenShift cluster is destroyed. Pull request #11780
- Switched the docs image build from yarn to npm and removed the stale yarn.lock entry from docs/.gitignore. Pull request #11797
- Updated the Postgres versions used in E2E tests. Pull request #11335
Why it matters
This week fixes behavior users hit in real clusters: follower parameters removed from the spec are now still enforced, and on-demand backups keep the cluster online configuration when only one option is set. It also adds documented read-only DBA access with a dedicated viewer role, so operators no longer need cluster-admin for routine inspection.
Changelog entry
- Add read-only DBA persona samples and a cnpg-viewer-role ClusterRole with read-only access to the postgresql.cnpg.io group plus barmancloud.cnpg.io and klio.cnpg.io. Pull request #11684
- Enforce hot standby sensitive parameters that were removed from spec.postgresql.parameters by writing the protective
pg_controldatavalue to the configuration. Pull request #11236 - Keep the cluster online configuration in on-demand backups when only one of immediate-checkpoint or wait-for-archive is set. Pull request #11733
- Leave volumes that already hold the instance untouched when the bootstrap-instance init container reruns on a recreated Pod. Pull request #11608
- Resolve the csi-hostpath deploy directory at runtime in E2E tests instead of a hardcoded path. Pull request #11760
- Retry read-only psql checks that hit dropped exec streams on AKS and make the replica switchover marker insert idempotent. Pull request #11747
- Dump cnpg-system and cert-manager objects and events when the plugin upgrade E2E spec fails. Pull request #11748
- Delete unattached GCP disks carrying the cluster label after the OpenShift cluster is destroyed. Pull request #11780
- Build docs with npm instead of yarn and drop the stale yarn.lock entry from docs/.gitignore. Pull request #11797
- Update the Postgres versions used in E2E tests. Pull request #11335
- Add CRA stewardship statement. Pull request #11767
This week: a read-only viewer role for DBAs, follower hot standby parameters enforced even after removal from the spec, and on-demand backups keeping the cluster online configuration. Plus bootstrap safety on recreated Pods and steadier E2E tests.
This week's changes for CloudNativePG users: a new cnpg-viewer-role ClusterRole and read-only DBA persona docs give humans operational access without cluster-admin. Hot standby sensitive parameters removed from the Cluster spec are now still enforced for followers, and on-demand backups keep the cluster online configuration when only one of the checkpoint or archive options is set. The bootstrap-instance init container now leaves volumes that already hold the instance untouched when a Pod is recreated with its PVCs. E2E work resolves the csi-hostpath deploy directory at runtime, retries read-only psql checks that hit dropped exec streams on AKS, and dumps cnpg-system and cert-manager objects on failed upgrades.
Week of October 19, 2026
What shipped
- DatabaseRole can now generate its own password and store it in a basic-auth Secret instead of requiring one to be created beforehand. Pull request #11337
- The instance-manager liveness probe now fails, letting the kubelet restart the Pod, in two stuck cases the primary lease and fencing logic cannot recover from. Pull request #11358
- A replica that stops being the target primary now stops renewing the primary lease, so the new target can complete its observation window and the cluster gets a primary. Pull request #11677
- Local connections from the superuser and metrics exporter pools now have a connect timeout, so callers no longer block forever when PostgreSQL accepts the connection but never answers the startup message. Pull request #11718
- WAL restore now uses timeline-scoped end-of-WAL markers, so a parent-timeline prefetch miss cannot cause a child-timeline restore to replay the wrong bytes. Pull request #11133
- Kubectl cnpg status now checks for the pods/exec permission first and handles its absence cleanly instead of printing raw exec errors and failing. Pull request #11687
- Restore now cleans up an orphan primary Lease and grants delete on leases, so a Cluster recreated over leftover resources can adopt its existing primary Lease under the OwnerReferencesPermissionEnforcement plugin. Pull request #11609
- Docs announce that 1.31 is the last minor release with native Barman Cloud support, removed from 1.32.0, with a link to the Barman Cloud Plugin migration path. Pull request #11702
- Docs warn that Barman Cloud targets AWS S3 as reference and that issues seen only on a third-party object store must be solved with the storage vendor. Pull request #11710
- A new tla directory models the primary lease in PlusCal and checks it with TLC, starting with the non-cooperative old primary case. Pull request #11610
Why it matters
This week tightens the failure paths that leave a cluster without a working primary: lease renewal, the liveness probe and connection handling all changed. Role passwords can now be generated by the operator, and restore and status handling are more robust. The docs also set expectations for the end of native Barman Cloud support in 1.32.0.
Changelog entry
- Feat: generate the password of a declarative role and store it in a basic-auth Secret Pull request #11337
- Feat(instance-manager): turn the liveness probe into a watchdog for unrecoverable primary-lease states Pull request #11358
- Fix(instance-manager): stop renewing the primary lease when a replica stops being the target Pull request #11677
- Fix(instance-manager): add a connect timeout to local superuser and metrics exporter connections Pull request #11718
- Fix(walrestore): use timeline-aware barman-cloud end-of-WAL markers Pull request #11133
- Fix(plugin): handle a missing exec permission in status Pull request #11687
- Fix(restore): clean up the orphan primary Lease and grant delete on leases Pull request #11609
- Docs: announce 1.31 as the last release with native Barman Cloud support Pull request #11702
- Docs: warn about third-party S3 provider compatibility Pull request #11710
- Feat(tla): model the primary lease with PlusCal Pull request #11610
- Ci(aks): drop the Log Analytics workspace from AKS E2E clusters Pull request #11663
- Test(e2e): keep the crash output of a Ginkgo worker Pull request #11674
This week: DatabaseRole can generate its own password. The liveness probe now restarts truly stuck Pods, and a replica that stops being target primary stops renewing the lease. Local connections get a connect timeout, plus timeline-aware WAL restore markers.
This week in CloudNativePG: DatabaseRole can now generate its own password and store it in a basic-auth Secret. The instance-manager liveness probe now fails so the kubelet can restart Pods stuck in states the lease and fencing logic cannot recover from, and a replica that stops being target primary no longer keeps renewing the primary lease. Local superuser and metrics connections now have a connect timeout. WAL restore uses timeline-scoped end-of-WAL markers, kubectl cnpg status handles a missing exec permission, and the docs announce 1.31 as the last release with native Barman Cloud support.
Week of October 12, 2026
What shipped
- Primary self-fencing on network isolation now runs through the primary lease instead of the liveness probe. Pull request #11357
- Pg_basebackup bootstrap accepts an optional additionalArgs list appended to the operator-generated command. Pull request #11595
- Pg_basebackup bootstrap gains tablespaceMapping to map declared tablespaces to their locations in a source that does not follow the CloudNativePG layout. Pull request #11649
- Backup status patches that mark a backup started or pending are now conditional on the resourceVersion, so a second reconciliation cannot start or reset a backup. Pull request #11617
- A reconciler hook returning BEHAVIOR_REQUEUE without
requeue_afternow requeues the Cluster instead of leaving it untouched. Pull request #11683 - Replica cluster status can report the system ID while PostgreSQL is down, so ConsistencySystemID no longer stays False after a demotion. Pull request #11645
- The exec timeout now applies to each retry attempt, so a transient handshake or DNS timeout no longer consumes the whole budget. Pull request #11651
- Image extensions no longer add share or lib entries to the control and library paths when the directory is missing from the image. Pull request #11652
- GitHub downloads in end-to-end runs retry on connection reset via retry-all-errors. Pull request #11644
- The GKE job authenticates to Google Cloud with Workload Identity Federation instead of a stored service account key. Pull request #11611
Why it matters
This week reduces operator-side surprises: backups are guarded against duplicate starts, system ID reporting survives PostgreSQL being down, and exec retries behave as expected. Bootstrap gains knobs for sources with a different tablespace layout and for tuning pg_basebackup, while primary self-fencing moves onto the lease. CI also shifts to short-lived Google Cloud credentials and more reliable downloads.
Changelog entry
- Move primary isolation self-fencing from the liveness probe to the primary lease. Pull request #11357
- Add spec.bootstrap.pg_basebackup.additionalArgs. Pull request #11595
- Add spec.bootstrap.pg_basebackup.tablespaceMapping. Pull request #11649
- Make Backup started and pending status patches conditional on resourceVersion. Pull request #11617
- Requeue when a hook returns BEHAVIOR_REQUEUE without
requeue_after. Pull request #11683 - Report the replica cluster system ID while PostgreSQL is down. Pull request #11645
- Apply the exec timeout to each attempt and avoid retrying an attempt that hit its deadline. Pull request #11651
- Skip image extension paths that are missing from the image. Pull request #11652
- Retry GitHub downloads on connection reset in end-to-end runs. Pull request #11644
- Authenticate the GKE job with Workload Identity Federation. Pull request #11611
Weekly update: primary self-fencing now uses the primary lease, pg_basebackup bootstrap gains additionalArgs and tablespaceMapping, Backup start is guarded against duplicate reconciliations, and requeue without a delay works again.
This week in CloudNativePG: primary self-fencing on network isolation moved from the liveness probe to the primary lease. pg_basebackup bootstrap gained additionalArgs for tuning the copy and tablespaceMapping for sources that do not follow the CloudNativePG tablespace layout. Backup status patches are now conditional on resourceVersion so a second reconciliation cannot start or reset a backup. A hook returning BEHAVIOR_REQUEUE without requeue_after now requeues the Cluster, replica clusters report the system ID while PostgreSQL is down, and the exec timeout applies per attempt. Image extensions skip directories missing from the image, GitHub downloads retry on connection reset, and the GKE job uses Workload Identity Federation.
Week of October 5, 2026
What shipped
- Updated the golang.org/x modules to fix the govulncheck findings, moving net, text, mod, sync and tools to newer versions. Pull request #11631
- Bumped the threat assessment artifacts to Gemara v1.6.0 and updated the SECURITY_INSIGHTS.yml self-assessment to reference the same version. Pull request #11567
- Fixed the replica switchover end-to-end test so it no longer runs out of disk, pausing inserts, capping
max_wal_sizeat 256MB and giving WAL its own 1Gi volume. Pull request #11626 - Made the replica switchover end-to-end test wait for the rollout, since leaving replica mode changes
archive_modeand the operator restarts the primary afterwards. Pull request #11620 - Removed the kubeadmin user after the OpenShift installation in CI and hid its password in the installer output. Pull request #11619
Why it matters
This week the project closed three security and CI hygiene gaps and made two end-to-end tests reliable. Dependencies were bumped to clear govulncheck findings, the threat assessment artifacts were brought to Gemara v1.6.0, and the OpenShift job no longer leaves a kubeadmin user with a password printed in logs. The replica switchover tests no longer fail from a full disk or from querying the primary mid-restart.
Changelog entry
- Fix(deps): bump golang.org/x modules to fix govulncheck findings Pull request #11631
- Chore: bump threat assessment artifacts to Gemara v1.6.0 Pull request #11567
- Test(e2e): stop the replica switchover clusters from running out of disk Pull request #11626
- Test(e2e): wait for the replica switchover rollout Pull request #11620
- Ci(openshift): remove the kubeadmin user after the installation Pull request #11619
Dependency bumps clear govulncheck findings, threat assessment artifacts move to Gemara v1.6.0, and OpenShift CI drops the kubeadmin user after install. Replica switchover e2e tests now stop running out of disk and wait for the rollout.
This week in CloudNativePG: updated golang.org/x modules to fix govulncheck findings, bumped threat assessment artifacts to Gemara v1.6.0 with SECURITY_INSIGHTS.yml aligned to the same version, and removed the kubeadmin user after the OpenShift installation while hiding its password in installer output. The replica switchover end-to-end tests got two fixes: inserts are paused and max_wal_size is capped at 256MB with WAL on its own 1Gi volume so the disk no longer fills, and the spec waits for the second cluster to be ready before querying it, avoiding mid-restart reads.
Week of September 28, 2026
What shipped
- Fixed restore process hanging when backup tool restores an instance Pod with its PVC by making the restore gate skip the operator's own init containers. Pull request #11549
- Replaced rapid test dependency licensed under MPL-2.0 with seeded loop from standard library to resolve licensing concerns flagged by Snyk. Pull request #11592
- Increased upgrade suite timeout to 2 hours to accommodate slower cloud runs that were timing out healthy specs. Pull request #11597
- Added logging of transient network errors with barman-cloud-wal-restore, available from Barman 3.20.0 onwards. Pull request #11541
- Made GKE region and machine type configurable via repository variables, changing default region from europe-west3 to europe-west4. Pull request #11578
- Fixed Renovate error when attempting to pin pgbouncer image digest by removing unsupported digest storage from DefaultPgbouncerImage. Pull request #11576
- Dropped Kubernetes 1.29.x from automation and updated issue template version dropdown as 1.29.3 was the final 1.29.x release. Pull request #11564
- Clarified end-to-end test documentation to explain that goroutine stacks are logged to pod logs rather than exec output. Pull request #11596
Why it matters
This week addresses critical restore issues that were blocking deployments, resolves licensing compliance concerns, and improves CI reliability by increasing timeouts and making infrastructure configuration more flexible. These changes enhance stability for users relying on backup and restore workflows.
Changelog entry
- Fixed restore process hanging by making restore gate skip operator's own init containers (bootstrap-controller, bootstrap-instance) Pull request #11549
- Replaced rapid test dependency (MPL-2.0) with seeded loop from standard library for licensing compliance Pull request #11592
- Increased upgrade suite timeout to 2 hours to prevent healthy specs from timing out on slower cloud runs Pull request #11597
- Added transient network error logging with barman-cloud-wal-restore (requires Barman 3.20.0+) Pull request #11541
- Made GKE region and machine type configurable via GKE_REGION and GKE_MACHINE_TYPE variables; default region changed to europe-west4 Pull request #11578
- Fixed Renovate error attempting to pin pgbouncer image digest by removing unsupported digest storage from DefaultPgbouncerImage Pull request #11576
- Dropped Kubernetes 1.29.x from backport, CI, and CD workflows as 1.29.3 was final release Pull request #11564
This week: fixed restore hangs with backup tools, resolved licensing flags, improved CI reliability with longer timeouts, and made GKE configuration more flexible for different environments.
This week's updates focus on reliability and compliance. We fixed an issue where restore operations would hang when backup tools recreate Pods with PVCs, replaced a licensing-flagged test dependency with a standards-based approach, increased CI timeouts to prevent false failures on slower cloud runs, and made GKE infrastructure configuration more flexible. These changes strengthen backup/restore workflows and improve test reliability.
Week of September 21, 2026
What shipped
- Released v1.30.1 with restoreAdditionalCommandArgs support for.barmanObjectStore.data to forward custom flags to barman-cloud-restore during recovery Release
- Released v1.29.3, the final release in the 1.29.x series, with the same restoreAdditionalCommandArgs enhancement Release
- Fixed data checksums flag handling on PostgreSQL 18+ by setting --no-data-checksums when dataChecksums is false Pull request #11488
- Reverted restore certificate-wait deadlock fix that only changed where bootstrap-instance init containers got stuck without fixing the underlying issue Pull request #11548
- Fixed inheritedMetadata labels being discarded on PVC reconciliation by reordering label application Pull request #11499
- Fixed two monitoring alerts that latched forever after firing by correcting DatabaseDeadlockConflicts and DatabaseLockConflicts rules Pull request #11510
- Fixed Pooler and DatabaseRole objects recreating their owned resources after deletion, which blocked external finalizers like ArgoCD's foreground deletion Pull request #11359
- Fixed replica cluster designated primary sort order so the operator promotes the correct standby Pull request #11494
- Documented a cascading standby reconnect bug fixed in PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 for replica cluster users Pull request #11546
- Clarified that the primary isolation check only fails the liveness probe, triggering container restart through smart shutdown Pull request #11518
Why it matters
Two minor releases ship with recovery improvements for Barman Cloud backups. Several fixes address monitoring false positives, object deletion ordering, and replica cluster reliability. PostgreSQL 18 compatibility receives attention with data checksums handling.
Changelog entry
- Added restoreAdditionalCommandArgs to.barmanObjectStore.data for in-tree Barman Cloud recoveries Release
- Set --no-data-checksums when dataChecksums is false on PostgreSQL 18+ Pull request #11488
- Fixed DatabaseDeadlockConflicts and DatabaseLockConflicts alerts latching forever Pull request #11510
- Fixed inheritedMetadata labels being discarded on PVC reconciliation Pull request #11499
- Fixed Pooler and DatabaseRole recreating owned resources after deletion Pull request #11359
- Fixed replica cluster designated primary sort order Pull request #11494
- Reverted restore certificate-wait deadlock fix that did not resolve underlying issue Pull request #11548
V1.30.1 and v1.29.3 released. v1.29 is now end-of-life. Fixes include Barman Cloud recovery args, PVC label handling, monitoring alert latching, and replica cluster sort order.
CloudNativePG v1.30.1 and v1.29.3 are now available. v1.29 reaches end-of-life; users should upgrade. This week's releases include enhanced Barman Cloud recovery parameter forwarding, fixes for monitoring alerts that latch forever, corrected replica cluster designated primary sorting, and improved PostgreSQL 18 compatibility with data checksums handling.
Week of September 14, 2026
What shipped
- Fixed the controller from stalling or reverting an in-progress failover by checking whether the failover could complete instead of requeuing blindly, and by not mistaking a pending marker for a missing pod. Pull request #11336
- Fixed a deadlock during multi-instance cluster restore from orphan PVCs where a replica's bootstrap would hang waiting for certificates that the restore gate prevented from being set. Pull request #11492
- Fixed failover to immediately shut down an unreachable old primary instead of waiting for checkpoint and fast-shutdown attempts that would never complete, so it can rejoin as a replica. Pull request #11347
- Fixed fencing to only take out a single instance instead of preventing the entire cluster from electing a new primary or recreating deleted pods. Pull request #11274
- Fixed a window during primary restart or reschedule where PostgreSQL starts before acquiring the primary lease, which could allow multiple primaries. Pull request #11356
- Fixed plugin status reporting to include the PostgresCapabilities field that was being dropped during updates. Pull request #11447
- Made the disk-space e2e test deterministic by stopping the postmaster once the disk is full, preventing timeouts from harmless temporary file writes. Pull request #11490
- Fixed pgbouncer SHOW POOLS parsing to bind columns by name instead of relying on column count, avoiding failures when future pgbouncer releases add new columns. Pull request #11464
- Fixed preflight CI to create image-pull secrets in the randomized namespace that preflight v1.20.0+ now uses. Pull request #11472
- Fixed Rook CRD race on AKS by waiting for CRD registration before applying custom resources. Pull request #11479
Why it matters
This week addresses critical failover and recovery scenarios that can leave clusters unavailable or stuck in deadlock. Fixes to fencing, primary lease acquisition, and restore operations ensure the cluster can reliably handle failures and maintenance events. These changes make the controller more resilient when instances are unreachable or the cluster needs to reorganize.
Changelog entry
- Fixed controller avoiding stalling or reverting an in-progress failover Pull request #11336
- Fixed certificate-wait deadlock in orphan-PVC restore Pull request #11492
- Fixed demotion of unreachable old primary immediately during failover Pull request #11347
- Fixed cluster recovery while an instance is fenced Pull request #11274
- Fixed PostgreSQL start to gate on holding the primary lease Pull request #11356
- Fixed plugin status reporting of PostgreSQL capabilities Pull request #11447
- Made disk-space e2e test deterministic Pull request #11490
- Fixed pgbouncer SHOW POOLS column binding by name Pull request #11464
- Fixed preflight image-pull secret creation in randomized namespace Pull request #11472
- Fixed Rook CRD race on AKS Pull request #11479
- Fixed incorrect field name in
wal_archivingdocumentation Pull request #11477
This week: failover no longer stalls, fencing affects only the target instance, restore deadlocks are fixed, and primary startup is safer. Critical reliability improvements for PostgreSQL on Kubernetes.
This week we fixed several critical reliability issues in CloudNativePG: failover operations no longer stall or revert, fencing now correctly isolates only the target instance, restore from orphan PVCs no longer deadlocks, and primary startups now properly acquire the lease first. These changes ensure clusters can reliably recover from failures and maintenance events.