CloudNativePG
v1.30.1Storage & Data2026年9月23日
正確性とフェイルオーバーの信頼性に重点を置いたメンテナンスリリースです。リカバリやライフサイクルに関する修正に加え、PostgreSQLイメージの更新とセキュリティ関連の変更が含まれます。
要対応 (1)
securityhighgRPC依存関係を
v1.に更新83. 1 google.をgolang. org/grpc v1.に更新し、HTTP/2 DATAフレームの分割によるgRPC-Goのヒープメモリ枯渇に関するCVE-2026-84304とGHSA-vp52-pcj8-j9qcを修正しました。83. 1
影響確認 (2)
security拡張パスのトラバーサル検証を修正
拡張パスを設定している場合に適用されます。
絶対パスに含まれる
.のトラバーサルを実行時の解決後にも検証するようにし、拡張機能のマウントポイントから外れるパスをWebhookが受け入れないよう修正しました。. breakingPostgreSQLのデフォルトoperand imageを更新
PostgreSQLのoperand imageを設定していない場合に適用されます。
PostgreSQLのデフォルトoperand imageを
18.に更新しました。6-system-trixie
その他の記録済み変更 38 件すべてfixes 31 · additions 3 · value changes 3 · constraints 1
fixes (31)
- Fixed PgBouncer metrics silently reporting zero when PgBouncer adds or reorders columns:
SHOW STATSandSHOW POOLSresults are now matched by column name instead of by position. - Demoted an unreachable old primary immediately during failover, instead of waiting on checkpoint and fast-shutdown attempts that could never complete.
- Fixed failover and Pod recreation getting stuck while any instance in the cluster was fenced.
- Fixed a failover that could stall forever or get silently reverted.
- Fixed the designated-primary sort in
PostgresqlStatusListso a tie on LSN no longer sorts it out of order. - Gated PostgreSQL startup on the instance manager actually holding the primary
Lease, closing a window where a restarting or rescheduled primary could start accepting writes before acquiring the lease. - Bounded the primary lease take-over
Getcall to the lease'sRenewDeadline, so a call against an unreachable API server now fails fast and retries instead of blocking indefinitely. - Stopped abandoning a fast shutdown after 60 seconds.
- Waited for certificate status before refreshing secrets during bootstrap.
- Fixed in-tree Barman Cloud recovery ignoring
wal.andmaxParallel wal., fetching WAL one segment at a time instead of using the configured parallelism.restoreAdditionalCommandArgs - Honored the
unrecoverableannotation on pending and terminating instances. - Honored
Backup.when finalizing VolumeSnapshot-based backups, so a cold backup is no longer reported as online in status.spec. online - Set
--no-data-checksumsexplicitly when.isspec. postgresql. dataChecksums falseon PostgreSQL 18+, which now enables checksums by default ininitdb. - Stopped discarding
.labels on PVC reconciliation; they were applied before, and then overwritten by, the operator's own labels.spec. inheritedMetadata - Stopped
PoolerandDatabaseRolefrom recreating their owned resources after being marked for deletion - Handled a
NULLstats_resetvalue in thepg_stat_walmetric, which could occasionally break Prometheus scraping on PostgreSQL 18 clusters. - Recovered log streaming when a stale non-FIFO file blocked the log pipe.
- Stopped sampling logs of the Pods' processes, so no log lines are silently dropped.
- Stopped caching Helm release Secrets in the operator, which could spike memory usage and crashloop the operator on clusters with large Helm releases installed alongside it.
- Re-ran owned-resource finalizer cleanup after an operator restart, so a namespace deleted while the operator was down doesn't hang in
Terminatingforever. - Fixed rejoining replicas taking a long time to complete
pg_rewindwhen WAL prefetching (wal.) was enabled.maxParallel > 1 - Treated a PostgreSQL instance rejecting connections as started up in probes.
- Stopped issuing a redundant PATCH on every reconciliation when a cluster's
pvcTemplatesetvolumeAttributesClass. - Stopped halting replication slot reconciliation at the first failing slot.
- During rollouts, compared the running configuration hash, rather than the on-disk one, avoiding unnecessary switchovers.
- Retried
VolumeSnapshoterrors until the deadline, instead of giving up early. - Symlinked
pg_walto the WAL volume during plugin-based recovery, instead of replaying WAL onto the data volume, which could exhaust it on a large point-in-time recovery. - Reported the Postgres capabilities of a plugin correctly.
- Prevented the plugin status field from flapping on Cluster reconciliation.
- Replaced a finalizer with in-memory cleanup on Service deletion.
- Deleted PVCs before Pods in
cnpg destroy, avoiding a race that could leave dangling PVCs needing a second invocation to clean up.
additions (3)
- Added
restoreAdditionalCommandArgsto.for in-tree Barman Cloud recoveries, so custom flags are forwarded tobarmanObjectStore. data barman-cloud-restoreduring recovery. - Added support for setting
auth_userinspec.to override the user PgBouncer uses for itspgbouncer. parameters auth_queryconnection - Added a
--dry-runoption to thebackupcommand that prints theBackupresource that would be created, without creating it.
value changes (3)
- the operator now computes the
check_empty_wal_archivedecision once and passes it to CNPG-I plugins on both WAL archiving and restore hooks. - Moved the operator's own base image from Debian 12 (bookworm) to Debian 13 (trixie), now that Debian 12 has moved to LTS-only maintenance.
- Used UTC time zone for the default backup name.
constraints (1)
- Allowed setting the
ssl_ecdh_curvePostgreSQL parameter in.. It was previously rejected by the validating webhook even though the operator does not manage it.spec. postgresql. parameters
CloudNativePGをスタックに追加
対応が必要なリリースが出たときに、週次メールでお知らせします。 今回のセキュリティパッチと破壊的変更も、その一例です。