CloudNativePG
v1.28.4Storage & Dataセキュリティ修正と API 検証の厳格化に加え、サポート対象や既定値の更新があります。クラスタ操作と cnpg プラグインの正確性に関する修正も含まれます。
影響確認 (4)
securitycriticalプール接続の
search_path固定プール接続を利用している場合に適用されます。
プール接続ごとに
search_path = pg_catalog, public, pg_tempを固定し、起動メッセージに含めるようになりました。テナントが管理するデフォルト値より優先されます。securityhigh平文ロールパスワードの
SCRAM-SHA-256エンコード平文のロールパスワードを利用している場合に適用されます。
平文のロールパスワードを
SCRAM-SHA-256形式にエンコードしてから、CREATEまたはALTER ROLE .を発行するようになりました。. . PASSWORD breaking
cluster参照の変更不可化Database、Pooler、Publication、Subscription、ScheduledBackupリソースでcluster参照を利用している場合に適用されます。Database、Pooler、Publication、Subscription、ScheduledBackupリソースのcluster参照が変更不可になりました。breaking検証対象値の書き込み時再検証
検証用 webhook のチェック対象となる値を利用している場合に適用されます。
該当する値は検証用 webhook で拒否され、書き込み時にも再検証されるようになりました。
事前準備 (2)
deprecated
1.系列のサポート終了28. x 1.を実行している場合に適用されます。28 1.系列の最終リリースです。28. x 1.はサポート対象外となり、より新しいマイナーバージョンへの移行が推奨されています。28 deprecatedネイティブ Barman Cloud サポートの削除時期変更1.31.0で削除予定
native (in-tree) Barman Cloud supportを利用している場合に適用されます。ネイティブの Barman Cloud サポートは
1.ではなく30. 0 1.で削除される予定です。31. 0 Barman Cloud Pluginへの移行が引き続き推奨されています。
その他の記録済み変更 35 件すべてfixes 30 · additions 2 · value changes 2 · constraints 1
fixes (30)
- Fixed
spec.accepting keys that are not valid PostgreSQL parameter names, which could inject arbitrary directives intopostgresql. parameters postgresql.; key names are now validated by the webhook.conf - Fixed declarative
Database,Publication, andSubscriptionobjects reporting a stale primary-side status forever after their cluster was demoted to a replica - Fixed non-sequential pod names (for example
-1,-3) caused by the instance serial counter being advanced before the correspondingJoband PVCs were created - Fixed a switchover deadlock when a WAL-archiver plugin was enabled on an existing cluster
- Fixed a cluster staying in
Setting up primaryindefinitely when the instance-creation Job exhausted its backoff limit - Fixed deletion of a
Database,Publication, orSubscriptiongetting stuck inTerminatingon a replica cluster - Fixed a conflicting duplicate
DatabaseorSubscriptionwith adeletereclaim policy dropping the PostgreSQL object owned by the surviving CR - Fixed the
postgressuperuser being left locked out after superuser access was disabled and then re-enabled - Fixed backups getting stuck in the
startedphase when the instance manager running them was restarted - Fixed resource leaks when concurrent
Backupobjects raced - Fixed role reconciliation clearing the password on a PostgreSQL role when the referenced Secret could not be fetched
- Fixed a bootstrap failure where a metrics-exporter setup error (commonly a duplicate-key race with the controller) rolled back
streaming_replicacreation and wedged replica joins. - Fixed a
ScheduledBackupcontroller loop that occurred when aBackupwas created but its status patch never landed - Fixed a nil-pointer panic when reconciling a
PoolerwhoseClusterhas been deleted. - Fixed bootstrap log handling so that all named log pipes (
postgres,postgres., andcsv postgres.) get consumers duringjson WithActiveInstance - Fixed generation of invalid IPv6 URLs by wrapping the address in square brackets.
- Fixed an external cluster plugin still being treated as active when its configuration set
enabled: false. - Fixed a race during bootstrap recovery from an object store where the restore job could read a stale
Cluster - Fixed a cache race during cluster creation when the server and client CA resolve to the same Secret (the default)
- Fixed the
pg_basebackupbootstrap path overwriting or failing on a pre-existingPGDATA - Fixed the
Clusterphase flapping betweenHealthyand a plugin-failure phase when a post-reconcile plugin hook returned an error - Fixed stale certificate data and partial reads after an external server's Secret was rotated
- Fixed plugin connectivity to use the plugin
ServiceFQDN instead of its short name - Fixed excessive operator log noise from the per-request
Clustercreate/update validation webhook messages, now logged atdebuginstead ofinfo. - Fixed a first-primary bootstrap deadlock where a status-patch conflict after the data PVC was created but before the initialization Job was started left the orphan Pending PVC counted as an instance
- Fixed a declarative
VolumeSnapshotbackup being permanently marked as failed when a stale cache made the operator re-create a snapshot it had already provisioned - Fixed a volume snapshot backup being discarded on a transient instance-manager connection error
- Fixed a replica switchover losing its
status.demotionToken - Fixed
kubectl cnpg psqlon Windows, where execution relied on a Unix-only system call and failed with "not supported by windows" - Fixed an unbounded memory leak in
kubectl cnpg logs -fon busy clusters
additions (2)
- Added a label selector to the
Clusterscale subresource (status.), making aselector Clustera validtargetReffor the Vertical Pod Autoscaler (VPA) and Horizontal Pod Autoscaler (HPA), which can now map aClusterto its instance pods. - The operator now emits a
WarningPrimaryStatusCheckFailedevent on theClusterwhen the primary pod isReadyfrom the kubelet perspective but the operator's/pg/statuscheck fails and failover is deferred, giving users visibility into the deferral viakubectl describe cluster.
value changes (2)
- The operator now reloads a CNPG-i plugin automatically when its pods are rolled
- Updated the default PostgreSQL version to 18.4.
constraints (1)
- Added support for Kubernetes 1.35 and enabled unit tests on Kubernetes 1.36.
対応が必要なリリースが出たときに、週次メールでお知らせします。 今回のセキュリティパッチと破壊的変更も、その一例です。