|
| 1 | +--- |
| 2 | +title: "CloudNativePG 1.30.0 Released!" |
| 3 | +date: 2026-06-29 |
| 4 | +draft: false |
| 5 | +authors: |
| 6 | + - gbartolini |
| 7 | +image: |
| 8 | + url: 58364dde1adc4a0a8.37186404-2048x1445.jpg |
| 9 | + attribution: from <a href="https://wordpress.org/photos/photo/58364dde1a/">Saurabh</a> |
| 10 | +tags: |
| 11 | + - release |
| 12 | + - postgresql |
| 13 | + - postgres |
| 14 | + - kubernetes |
| 15 | + - k8s |
| 16 | + - cloudnativepg |
| 17 | + - cnpg |
| 18 | + - DatabaseRole |
| 19 | + - primaryLease |
| 20 | + - high-availability |
| 21 | + - failover |
| 22 | + - security |
| 23 | + - RBAC |
| 24 | + - supplychain |
| 25 | + - GitOps |
| 26 | + - PgBouncer |
| 27 | + - ImageCatalogs |
| 28 | +summary: "CloudNativePG 1.30 is here! This stable release introduces the DatabaseRole CRD for declarative, GitOps-friendly role management and a Lease-based primary election primitive for safer failover. We also announce maintenance releases 1.29.2 and the final 1.28.4. Upgrade today for enhanced stability, security, and high availability." |
| 29 | +--- |
| 30 | + |
| 31 | +The CloudNativePG Community is excited to announce the immediate availability |
| 32 | +of **CloudNativePG 1.30.0**! |
| 33 | + |
| 34 | +This minor release introduces the new `DatabaseRole` CRD for declarative, |
| 35 | +GitOps-friendly PostgreSQL role management and a Lease-based primary election |
| 36 | +primitive for safer failover, alongside notable security and operational |
| 37 | +improvements, further cementing CloudNativePG as the leading operator for |
| 38 | +running PostgreSQL workloads on Kubernetes. |
| 39 | + |
| 40 | +We are also pleased to announce the release of maintenance versions **1.29.2** |
| 41 | +and **1.28.4**, the latter of which is the final planned release in the 1.28.x |
| 42 | +series. We encourage users on 1.28 to plan their upgrade to 1.29 or 1.30. |
| 43 | + |
| 44 | +With the release of CloudNativePG 1.30.0, the CloudNativePG 1.28.x series |
| 45 | +reaches its End-of-Life (EOL) date of June 30, 2026, and the EOL date for the |
| 46 | +CloudNativePG 1.29.x series is confirmed as September 29, 2026. |
| 47 | + |
| 48 | +--- |
| 49 | + |
| 50 | +## Highlights in 1.30.0 |
| 51 | + |
| 52 | +### DatabaseRole CRD for declarative role management |
| 53 | + |
| 54 | +The headline addition in 1.30 is the new |
| 55 | +[`DatabaseRole`](https://cloudnative-pg.io/docs/1.30/declarative_role_management/#the-databaserole-resource) |
| 56 | +custom resource, which manages a PostgreSQL role as a standalone Kubernetes |
| 57 | +object rather than inline in the `Cluster`'s `.spec.managed.roles` stanza. Each |
| 58 | +role now has its own lifecycle, status and RBAC, which suits GitOps workflows |
| 59 | +and lets role definitions live next to the applications that own them. Migrating |
| 60 | +an existing role is a matter of moving its stanza into a dedicated |
| 61 | +manifest. |
| 62 | + |
| 63 | +A `DatabaseRole` can also include a `clientCertificate` block, having the |
| 64 | +operator automatically generate and renew a TLS client certificate signed by |
| 65 | +the cluster's client CA and stored in a `<databaserole-name>-client-cert` |
| 66 | +Secret. This enables password-free PostgreSQL `cert` authentication, with the |
| 67 | +Secret cleaned up automatically when the feature is disabled or the resource is |
| 68 | +deleted. |
| 69 | + |
| 70 | +### Primary Lease for safe primary election |
| 71 | + |
| 72 | +CloudNativePG 1.30 introduces a Kubernetes `Lease` object, named after the |
| 73 | +cluster, that acts as a mutex serializing primary promotion. The instance |
| 74 | +manager must hold the lease before acting as primary and releases it on clean |
| 75 | +shutdown, so replicas can promote without waiting for the full TTL. Timings are |
| 76 | +configurable through the new |
| 77 | +[`.spec.primaryLease`](https://cloudnative-pg.io/docs/1.30/failover/#tuning-the-primary-lease) |
| 78 | +stanza. |
| 79 | + |
| 80 | +To be precise about the architecture: the lease is a promotion gate, not a |
| 81 | +fence. Primary isolation remains responsible for fencing — the Lease closes |
| 82 | +the window for an uncoordinated promotion during transitions. |
| 83 | + |
| 84 | +--- |
| 85 | + |
| 86 | +## Enhanced Security and Resilience |
| 87 | + |
| 88 | +This release includes significant improvements focused on stability, security, |
| 89 | +and supply-chain integrity: |
| 90 | + |
| 91 | +- **`search_path` pinning ([CVE-2026-55769](https://github.com/cloudnative-pg/cloudnative-pg/security/advisories/GHSA-x8c2-3p4r-v9r6)):** |
| 92 | + Fixed a privilege-escalation vulnerability (CWE-426) where a database owner |
| 93 | + could plant overloaded operators in the `public` schema. The operator now |
| 94 | + pins `search_path = pg_catalog, public, pg_temp` on its pooled connections. |
| 95 | +- **SCRAM-SHA-256 password encoding ([CVE-2026-55765](https://github.com/cloudnative-pg/cloudnative-pg/security/advisories/GHSA-w3gf-xc94-wvmj)):** |
| 96 | + The operator now SCRAM-SHA-256 encodes cleartext passwords before issuing |
| 97 | + `CREATE`/`ALTER ROLE` commands, so the SCRAM verifier — rather than the |
| 98 | + cleartext secret — is what could ever appear in logs or extension captures. |
| 99 | +- **Authenticated instance communication ([GHSA-7qwx-x8ff-3px9](https://github.com/cloudnative-pg/cloudnative-pg/security/advisories/GHSA-7qwx-x8ff-3px9)):** |
| 100 | + Operator-to-instance-manager communication is now authenticated via ECDSA |
| 101 | + certificates. This hardening is new in 1.30.0 and is not backported; on |
| 102 | + earlier releases continue to restrict the instance status port with a |
| 103 | + `NetworkPolicy`. |
| 104 | + |
| 105 | +## Other Notable Enhancements |
| 106 | + |
| 107 | +- **In-place major upgrades with Image Volume extensions** — `pg_upgrade` |
| 108 | + in-place upgrades are now supported for clusters using Image Volume |
| 109 | + extensions, mounting the source- and target-version extension images side by |
| 110 | + side so a failed upgrade reverts cleanly. |
| 111 | +- **PgBouncer image management via Image Catalogs** — the `Pooler` can now |
| 112 | + reference an `ImageCatalog` or `ClusterImageCatalog` entry through |
| 113 | + `spec.pgbouncer.imageCatalogRef`, with referencing `Poolers` automatically |
| 114 | + reconciled and rolled out when a catalog entry changes. |
| 115 | +- **TLS for the Pooler metrics endpoint** via `.spec.monitoring.tls.enabled`, |
| 116 | + with hot certificate reloading on every handshake. |
| 117 | +- **Cluster as a VPA/HPA target** through a new `status.selector` on the scale |
| 118 | + subresource, mapping a `Cluster` to its instance pods. |
| 119 | +- **Primary status visibility** — the operator now emits a |
| 120 | + `PrimaryStatusCheckFailed` warning event when a primary pod looks Ready to the |
| 121 | + kubelet but fails the operator's `/pg/status` check, surfacing failover |
| 122 | + deferrals via `kubectl describe cluster`. |
| 123 | + |
| 124 | +This release also adds support for Kubernetes 1.36 and updates the default |
| 125 | +PostgreSQL version to 18.4. |
| 126 | + |
| 127 | +> **Heads-up on an API change:** the `cluster` reference is now immutable on the |
| 128 | +> `Database`, `Pooler`, `Publication`, `Subscription` and `ScheduledBackup` |
| 129 | +> resources. Re-pointing one of these at a different cluster is now rejected by a |
| 130 | +> CEL validation rule at the API server, as it had no well-defined semantics. |
| 131 | +
|
| 132 | +Dive into the full list of changes and fixes in the |
| 133 | +[release notes for CloudNativePG 1.30](https://cloudnative-pg.io/docs/1.30/release_notes/v1.30/). |
| 134 | + |
| 135 | +## Maintenance Releases: 1.29.2 & 1.28.4 |
| 136 | + |
| 137 | +In parallel with the 1.30 release, we have also shipped maintenance updates for |
| 138 | +the previous stable series. Both backport the security fixes above — including |
| 139 | +`search_path` pinning and SCRAM-SHA-256 password encoding — along with VPA/HPA |
| 140 | +support, primary status visibility, automatic CNPG-I plugin reloading, Kubernetes |
| 141 | +1.36 support, the updated PostgreSQL 18.4 default, and dozens of bug fixes: |
| 142 | + |
| 143 | +- **CloudNativePG 1.29.2:** see the |
| 144 | + [release notes for 1.29](https://cloudnative-pg.io/docs/1.29/release_notes/v1.29/#version-1292). |
| 145 | +- **CloudNativePG 1.28.4:** the final planned maintenance release for the |
| 146 | + 1.28.x series — see the |
| 147 | + [release notes for 1.28](https://cloudnative-pg.io/docs/1.28/release_notes/v1.28/#version-1284). |
| 148 | + We strongly recommend planning an upgrade to a currently supported version. |
| 149 | + |
| 150 | +We encourage all users to upgrade to the latest stable versions to benefit from |
| 151 | +the latest features, security enhancements, and bug fixes. |
| 152 | + |
| 153 | +Follow the [upgrade instructions](https://cloudnative-pg.io/docs/1.30/installation_upgrade/#upgrades) |
| 154 | +for a smooth transition. |
| 155 | + |
| 156 | +--- |
| 157 | + |
| 158 | +## Get Involved with the Community |
| 159 | + |
| 160 | +[Join us](https://github.com/cloudnative-pg/cloudnative-pg?tab=readme-ov-file#communications) |
| 161 | +to help shape the future of cloud-native Postgres! |
| 162 | + |
| 163 | +If you're using CloudNativePG in production, consider |
| 164 | +[adding your organization as an adopter](https://github.com/cloudnative-pg/cloudnative-pg/blob/main/ADOPTERS.md) |
| 165 | +to support the project's growth and evolution. |
| 166 | + |
| 167 | +Thank you for your continued support! Upgrade today and discover how |
| 168 | +CloudNativePG can elevate your PostgreSQL experience to new heights. |
| 169 | + |
| 170 | +<!-- uncomment this section for postgresql.org announcement. |
| 171 | +## About CloudNativePG |
| 172 | +
|
| 173 | +[CloudNativePG](https://cloudnative-pg.io) is an open-source Kubernetes |
| 174 | +Operator specifically designed for PostgreSQL workloads. It manages the entire |
| 175 | +lifecycle of a PostgreSQL cluster, including bootstrapping, configuration, high |
| 176 | +availability, connection routing, and comprehensive backup and disaster |
| 177 | +recovery mechanisms. By leveraging PostgreSQL's native streaming replication, |
| 178 | +CloudNativePG efficiently distributes data across pods, nodes, and zones using |
| 179 | +standard Kubernetes patterns, enabling seamless scaling of replicas in a |
| 180 | +Kubernetes-native manner. Originally developed and supported by |
| 181 | +[EDB](https://www.enterprisedb.com/), CloudNativePG is a CNCF Sandbox project |
| 182 | +and the sole PostgreSQL operator in this category. |
| 183 | +--> |
0 commit comments