|
| 1 | +--- |
| 2 | +title: "CloudNativePG 1.30.0 RC1 Released!" |
| 3 | +date: 2026-06-19 |
| 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 | + - preview |
| 18 | + - cnpg |
| 19 | + - DatabaseRole |
| 20 | + - primaryLease |
| 21 | + - high-availability |
| 22 | + - security |
| 23 | + - GitOps |
| 24 | + - PgBouncer |
| 25 | + - ImageCatalogs |
| 26 | +summary: "The CloudNativePG community is excited to announce the first release candidate of CloudNativePG 1.30! This preview introduces the DatabaseRole CRD for declarative, GitOps-friendly role management and a Lease-based primary election primitive for safer failover. Join us in testing these updates to shape the final release." |
| 27 | +--- |
| 28 | + |
| 29 | +The CloudNativePG Community is thrilled to announce the first release candidate |
| 30 | +of CloudNativePG 1.30! This preview release provides an opportunity to explore |
| 31 | +new features and enhancements before the final version is officially launched. |
| 32 | +While refinements may still occur, here's a look at what's new. |
| 33 | + |
| 34 | +## Key Features |
| 35 | + |
| 36 | +### DatabaseRole CRD for declarative role management |
| 37 | + |
| 38 | +The headline addition in 1.30 is the new |
| 39 | +[`DatabaseRole`](https://cloudnative-pg.io/docs/preview/declarative_role_management/#the-databaserole-resource) |
| 40 | +custom resource, which manages a PostgreSQL role as a standalone Kubernetes |
| 41 | +object rather than inline in the `Cluster`'s `.spec.managed.roles` stanza. Each |
| 42 | +role now has its own lifecycle, status and RBAC, which suits GitOps workflows |
| 43 | +and lets role definitions live next to the applications that own them. Migrating |
| 44 | +an existing role is simply a matter of moving its stanza into a dedicated |
| 45 | +manifest. |
| 46 | + |
| 47 | +A `DatabaseRole` can also include a `clientCertificate` block, having the |
| 48 | +operator automatically generate and renew a TLS client certificate signed by |
| 49 | +the cluster's client CA and stored in a `<databaserole-name>-client-cert` |
| 50 | +Secret. This enables password-free PostgreSQL `cert` authentication, with the |
| 51 | +Secret cleaned up automatically when the feature is disabled or the resource is |
| 52 | +deleted. |
| 53 | + |
| 54 | +### Primary Lease for safe primary election |
| 55 | + |
| 56 | +CloudNativePG 1.30 introduces a Kubernetes `Lease` object, named after the |
| 57 | +cluster, that acts as a mutex serializing primary promotion. The instance |
| 58 | +manager must hold the lease before acting as primary and releases it on clean |
| 59 | +shutdown, so replicas can promote without waiting for the full TTL. Timings are |
| 60 | +configurable through the new |
| 61 | +[`.spec.primaryLease`](https://cloudnative-pg.io/docs/preview/failover/#tuning-the-primary-lease) |
| 62 | +stanza. |
| 63 | + |
| 64 | +To be precise about the architecture: the lease is a promotion gate, not a |
| 65 | +fence. Primary isolation remains responsible for fencing — the Lease simply |
| 66 | +closes the window for an uncoordinated promotion during transitions. |
| 67 | + |
| 68 | +## There's More… |
| 69 | + |
| 70 | +Explore other improvements in this release, including: |
| 71 | + |
| 72 | +- **In-place major upgrades with Image Volume extensions** — `pg_upgrade` |
| 73 | + in-place upgrades are now supported for clusters using Image Volume |
| 74 | + extensions, mounting the source- and target-version extension images side by |
| 75 | + side so a failed upgrade reverts cleanly. |
| 76 | +- **PgBouncer image management via Image Catalogs** — the `Pooler` can now |
| 77 | + reference an `ImageCatalog` or `ClusterImageCatalog` entry through |
| 78 | + `spec.pgbouncer.imageCatalogRef`, with referencing `Poolers` automatically |
| 79 | + reconciled and rolled out when a catalog entry changes. |
| 80 | +- **TLS for the Pooler metrics endpoint** via `.spec.monitoring.tls.enabled`, |
| 81 | + with hot certificate reloading on every handshake. |
| 82 | +- **Cluster as a VPA/HPA target** through a new `status.selector` on the scale |
| 83 | + subresource, mapping a `Cluster` to its instance pods. |
| 84 | + |
| 85 | +This release also adds support for Kubernetes 1.36 and updates the default |
| 86 | +PostgreSQL version to 18.4. |
| 87 | + |
| 88 | +> **Heads-up on an API change:** the `cluster` reference is now immutable on the |
| 89 | +> `Database`, `Pooler`, `Publication`, `Subscription` and `ScheduledBackup` |
| 90 | +> resources. Re-pointing one of these at a different cluster is now rejected by a |
| 91 | +> CEL validation rule at the API server, as it had no well-defined semantics. |
| 92 | +
|
| 93 | +Dive into the full details in the |
| 94 | +[release notes for 1.30 RC1](https://cloudnative-pg.io/docs/preview/release_notes/v1.30/). |
| 95 | + |
| 96 | +## Testing |
| 97 | + |
| 98 | +The stability of each CloudNativePG release relies on the community's |
| 99 | +engagement. Testing your workloads with this release candidate helps identify |
| 100 | +bugs and regressions early. |
| 101 | + |
| 102 | +- View the [open issues for the 1.30 release](https://github.com/cloudnative-pg/cloudnative-pg/milestones). |
| 103 | +- Report bugs directly on [GitHub](https://github.com/cloudnative-pg/cloudnative-pg/issues/new/choose). |
| 104 | + |
| 105 | +## Release Timeline |
| 106 | + |
| 107 | +This is the first release candidate for CloudNativePG 1.30. Further candidates |
| 108 | +will be released only as necessary before the final launch, currently planned |
| 109 | +before the end of June. |
| 110 | + |
| 111 | +## Join the Community |
| 112 | + |
| 113 | +[Connect with our community on your preferred platform](https://github.com/cloudnative-pg#getting-in-touch)! |
| 114 | + |
| 115 | +Thank you for your continued support of CloudNativePG. Your contributions help |
| 116 | +us advance the Kubernetes-native PostgreSQL experience. |
0 commit comments