@@ -11,6 +11,163 @@ For a complete list of changes, please refer to the
1111[ commits] ( https://github.com/cloudnative-pg/cloudnative-pg/commits/release-1.27 )
1212on the release branch in GitHub.
1313
14+ ## Version 1.27.4
15+
16+ ** Release date:** Mar 31, 2026
17+
18+ ::: warning
19+ This is the final release in the 1.27.x series.
20+ Users are strongly encouraged to upgrade to a newer minor version, as 1.27
21+ is no longer supported.
22+ :::
23+
24+ ### Important changes
25+
26+ - Updated the deprecation notice for native (in-tree) Barman Cloud support to
27+ reflect that it will now be removed in CloudNativePG 1.30.0, rather than
28+ 1.29.0. Users are still encouraged to migrate to the Barman Cloud Plugin.
29+ ([ #10167 ] ( https://github.com/cloudnative-pg/cloudnative-pg/pull/10167 ) ) <!-- 1.28 1.27 -->
30+
31+ ### Enhancements
32+
33+ - Improved the ` Pooler ` CRD with support for granular configuration of TLS
34+ cipher suites and minimum/maximum TLS versions. This enables administrators
35+ to meet strict security compliance requirements for pooler-to-client and
36+ pooler-to-server connections.
37+ Contributed by @alex1989hu .
38+ ([ #9571 ] ( https://github.com/cloudnative-pg/cloudnative-pg/pull/9571 ) ) <!-- 1.28 1.27 1.25 -->
39+
40+ - Improved the reliability of major upgrades by setting ` BackoffLimit=0 ` on the
41+ upgrade job, preventing unnecessary retries of a failed ` pg_upgrade ` . The
42+ operator now automatically deletes the failed job when a user reverts the
43+ container image, allowing the cluster to restart gracefully on the original
44+ version.
45+ ([ #10104 ] ( https://github.com/cloudnative-pg/cloudnative-pg/pull/10104 ) ,
46+ [ #10298 ] ( https://github.com/cloudnative-pg/cloudnative-pg/pull/10298 ) ) <!-- 1.28 1.27 -->
47+
48+ - Improved role management by verifying the instance is the primary before
49+ each reconciliation cycle, avoiding unnecessary reconciliation attempts and
50+ spurious error messages on read-only replicas.
51+ ([ #9971 ] ( https://github.com/cloudnative-pg/cloudnative-pg/pull/9971 ) ) <!-- 1.28 1.27 1.25 -->
52+
53+ - Extended the CRD schemas for ` Cluster ` , ` ImageCatalog ` , and
54+ ` ClusterImageCatalog ` to accept the ` extensions ` , ` bin_path ` , and ` env `
55+ fields introduced in 1.29. The operator ignores these fields on older
56+ versions, but accepting them in the schema allows users to share a single
57+ manifest across clusters running different CNPG versions.
58+ ([ #10131 ] ( https://github.com/cloudnative-pg/cloudnative-pg/pull/10131 ) ,
59+ [ #10387 ] ( https://github.com/cloudnative-pg/cloudnative-pg/pull/10387 ) ) <!-- 1.28 1.27 -->
60+
61+ - The operator now honors the ` primaryUpdateMethod ` when adding new PVCs to a
62+ cluster, ensuring that the rollout strategy (e.g., switchover vs. restart) is
63+ respected during storage expansion or additions.
64+ ([ #9720 ] ( https://github.com/cloudnative-pg/cloudnative-pg/pull/9720 ) ) <!-- 1.28 1.27 -->
65+
66+ ### Security and Supply Chain
67+
68+ - ** Security best practices integration** : integrated the OpenSSF baseline
69+ scanner and added a ` SECURITY-INSIGHTS.yaml ` file to the repository to align
70+ with industry-standard security reporting.
71+ ([ #10054 ] ( https://github.com/cloudnative-pg/cloudnative-pg/pull/10054 ) , <!-- 1.28 1.27 1.25 -->
72+ [ #10062 ] ( https://github.com/cloudnative-pg/cloudnative-pg/pull/10062 ) ) <!-- 1.28 1.27 1.25 -->
73+
74+ - ** SLSA provenance and SBOMs** : added SLSA (Supply-chain Levels for Software
75+ Artifacts) provenance to release binaries and container images. Additionally,
76+ enabled Software Bill of Materials (SBOM) generation within the GoReleaser
77+ pipeline for improved dependency transparency.
78+ ([ #10048 ] ( https://github.com/cloudnative-pg/cloudnative-pg/pull/10048 ) , <!-- 1.28 1.27 1.25 -->
79+ [ #10074 ] ( https://github.com/cloudnative-pg/cloudnative-pg/pull/10074 ) ) <!-- 1.28 1.27 1.25 -->
80+
81+ - ** Password leak prevention** : fixed a potential security risk where PostgreSQL
82+ could leak role passwords in the logs during specific reconciliation phases.
83+ ([ #9950 ] ( https://github.com/cloudnative-pg/cloudnative-pg/pull/9950 ) ) <!-- 1.28 1.27 1.25 -->
84+
85+ ### Changes
86+
87+ - Updated the default PostgreSQL version to 18.3 (image ` 18.3-system-trixie ` ).
88+ ([ #10090 ] ( https://github.com/cloudnative-pg/cloudnative-pg/pull/10090 ) ) <!-- 1.28 1.27 1.25 -->
89+
90+ ### Fixes
91+
92+ - Fixed an issue where fencing annotations could not be processed when the WAL
93+ disk was full, because the disk space check blocked the instance manager from
94+ starting. The check is now performed later in the lifecycle loop, after
95+ fencing is evaluated.
96+ ([ #10302 ] ( https://github.com/cloudnative-pg/cloudnative-pg/pull/10302 ) ) <!-- 1.28 1.27 -->
97+
98+ - Fixed an issue where replicas would get stuck in a ` Pending ` state if the
99+ ` VolumeSnapshot ` used for the initial bootstrap had been deleted. The
100+ operator now validates snapshot existence before use; if a snapshot is missing,
101+ it attempts to use the next available candidate or falls back to
102+ ` pg_basebackup ` .
103+ ([ #10192 ] ( https://github.com/cloudnative-pg/cloudnative-pg/pull/10192 ) ) <!-- 1.28 1.27 1.25 -->
104+
105+ - Prevented the "supervised primary" rollout strategy from consuming all
106+ available rollout slots, which previously caused delays in scheduled updates.
107+ Contributed by @ermakov-oleg .
108+ ([ #9977 ] ( https://github.com/cloudnative-pg/cloudnative-pg/pull/9977 ) ) <!-- 1.28 1.27 1.25 -->
109+
110+ - Fixed an issue where certain hot-standby parameter changes were not being
111+ correctly applied to replica clusters.
112+ ([ #9952 ] ( https://github.com/cloudnative-pg/cloudnative-pg/pull/9952 ) ) <!-- 1.28 1.27 1.25 -->
113+
114+ - Fixed a bug in the CNPG-I reconciler hook that could lead to skipping
115+ subsequent plugins when a "continue" result was returned.
116+ Contributed by @sharifmshaker .
117+ ([ #9978 ] ( https://github.com/cloudnative-pg/cloudnative-pg/pull/9978 ) ) <!-- 1.28 1.27 -->
118+
119+ - Fixed a deadlock scenario that occurred when attempting to resize a
120+ filesystem on a PVC that was not currently attached to a Pod.
121+ Contributed by @jmealo .
122+ ([ #9981 ] ( https://github.com/cloudnative-pg/cloudnative-pg/pull/9981 ) ) <!-- 1.28 1.27 -->
123+
124+ - Fixed webhook validation of bootstrap recovery sources to accept external
125+ clusters configured with ` ConnectionParameters ` (for ` pg_basebackup ` -based
126+ recovery). Previously, these were incorrectly rejected unless a Barman
127+ object store or CNPG-i plugin was also configured.
128+ ([ #10268 ] ( https://github.com/cloudnative-pg/cloudnative-pg/pull/10268 ) ) <!-- 1.28 1.27 1.25 -->
129+
130+ - Volume names for extensions and tablespaces are now prefixed to avoid naming
131+ collisions with standard cluster volumes.
132+ ([ #9973 ] ( https://github.com/cloudnative-pg/cloudnative-pg/pull/9973 ) ) <!-- 1.28 1.27 -->
133+
134+ - When hibernating a non-healthy cluster, the operator now reports a
135+ ` WaitingForHealthy ` condition, making the deferred hibernation state visible
136+ through ` cnpg status ` .
137+ ([ #10193 ] ( https://github.com/cloudnative-pg/cloudnative-pg/pull/10193 ) ) <!-- 1.28 1.27 1.25 -->
138+
139+ - Fixed fencing to work correctly even when the target pod does not exist.
140+ Fencing operates on a cluster-level annotation and should not depend on pod
141+ existence; instance name validation is now performed only in the `cnpg
142+ fencing on` command.
143+ ([ #10035 ] ( https://github.com/cloudnative-pg/cloudnative-pg/pull/10035 ) ) <!-- 1.28 1.27 1.25 -->
144+
145+ - Fixed the cluster and pooler service reconcilers to correctly handle changes
146+ to all spec fields when using the patch update strategy. The reconciler now
147+ uses RFC 7386 JSON Merge Patching, preventing cloud-provider-set fields
148+ (such as ` loadBalancerClass ` ) from being inadvertently removed.
149+ ([ #10190 ] ( https://github.com/cloudnative-pg/cloudnative-pg/pull/10190 ) ,
150+ [ #10311 ] ( https://github.com/cloudnative-pg/cloudnative-pg/pull/10311 ) ) <!-- 1.28 1.27 1.25 -->
151+
152+ - Fixed a race condition in the deprecated in-tree Barman Cloud backup
153+ implementation affecting parallel WAL restore, where prefetched files could
154+ be read while still being downloaded, causing PostgreSQL recovery to fail
155+ with "invalid checkpoint record" errors.
156+ ([ #10285 ] ( https://github.com/cloudnative-pg/cloudnative-pg/pull/10285 ) ) <!-- 1.28 1.27 1.25 -->
157+
158+ - Fixed the timeline history file validation to also apply to plugin-based WAL
159+ restore. Previously, the protection introduced in
160+ [ #9650 ] ( https://github.com/cloudnative-pg/cloudnative-pg/pull/9650 ) only
161+ covered in-tree restores, allowing plugins to bypass the check and download
162+ future timeline history files, causing timeline mismatch errors on replicas.
163+ ([ #9849 ] ( https://github.com/cloudnative-pg/cloudnative-pg/pull/9849 ) ) <!-- 1.28 1.27 1.25 -->
164+
165+ - ` cnpg ` plugin:
166+
167+ - The cnpg plugin now correctly propagates ImagePullSecrets to the
168+ ` pgbench ` Job pod template.
169+ ([ #10174 ] ( https://github.com/cloudnative-pg/cloudnative-pg/pull/10174 ) ) <!-- 1.28 1.27 1.25 -->
170+
14171## Version 1.27.3
15172
16173** Release date:** Feb 5, 2026
0 commit comments