Skip to content

Commit 53f07dc

Browse files
gbartolinimnencia
andauthored
docs: announce 1.30.0, 1.29.2, and 1.28.4 (#453)
Closes #452 Signed-off-by: Gabriele Bartolini <gabriele.bartolini@enterprisedb.com> Signed-off-by: Marco Nenciarini <marco.nenciarini@enterprisedb.com> Co-authored-by: Marco Nenciarini <marco.nenciarini@enterprisedb.com>
1 parent ba4985f commit 53f07dc

2 files changed

Lines changed: 183 additions & 0 deletions

File tree

442 KB
Loading
Lines changed: 183 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,183 @@
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

Comments
 (0)