RATATOSKRATATOSK
ログイン

CloudNativePG

v1.28.4Storage & Data
2026年6月29日

CHECK 4PLAN 2OTHER 35

セキュリティ修正と API 検証の厳格化に加え、サポート対象や既定値の更新があります。クラスタ操作と cnpg プラグインの正確性に関する修正も含まれます。

影響確認 (4)

  • securitycriticalプール接続の search_path 固定

    プール接続を利用している場合に適用されます。

    プール接続ごとに search_path = pg_catalog, public, pg_temp を固定し、起動メッセージに含めるようになりました。テナントが管理するデフォルト値より優先されます。

  • securityhigh平文ロールパスワードの SCRAM-SHA-256 エンコード

    平文のロールパスワードを利用している場合に適用されます。

    平文のロールパスワードを SCRAM-SHA-256 形式にエンコードしてから、CREATE または ALTER ROLE ... PASSWORD を発行するようになりました。

  • breakingcluster 参照の変更不可化

    Database、Pooler、Publication、Subscription、ScheduledBackup リソースで cluster 参照を利用している場合に適用されます。

    Database、Pooler、Publication、Subscription、ScheduledBackup リソースの cluster 参照が変更不可になりました。

  • breaking検証対象値の書き込み時再検証

    検証用 webhook のチェック対象となる値を利用している場合に適用されます。

    該当する値は検証用 webhook で拒否され、書き込み時にも再検証されるようになりました。

事前準備 (2)

  • deprecated1.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.postgresql.parameters accepting keys that are not valid PostgreSQL parameter names, which could inject arbitrary directives into postgresql.conf; key names are now validated by the webhook.
  • Fixed declarative Database, Publication, and Subscription objects 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 corresponding Job and 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 primary indefinitely when the instance-creation Job exhausted its backoff limit
  • Fixed deletion of a Database, Publication, or Subscription getting stuck in Terminating on a replica cluster
  • Fixed a conflicting duplicate Database or Subscription with a delete reclaim policy dropping the PostgreSQL object owned by the surviving CR
  • Fixed the postgres superuser being left locked out after superuser access was disabled and then re-enabled
  • Fixed backups getting stuck in the started phase when the instance manager running them was restarted
  • Fixed resource leaks when concurrent Backup objects 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_replica creation and wedged replica joins.
  • Fixed a ScheduledBackup controller loop that occurred when a Backup was created but its status patch never landed
  • Fixed a nil-pointer panic when reconciling a Pooler whose Cluster has been deleted.
  • Fixed bootstrap log handling so that all named log pipes (postgres, postgres.csv, and postgres.json) get consumers during 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_basebackup bootstrap path overwriting or failing on a pre-existing PGDATA
  • Fixed the Cluster phase flapping between Healthy and 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 Service FQDN instead of its short name
  • Fixed excessive operator log noise from the per-request Cluster create/update validation webhook messages, now logged at debug instead of info.
  • 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 VolumeSnapshot backup 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 psql on 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 -f on busy clusters

additions (2)

  • Added a label selector to the Cluster scale subresource (status.selector), making a Cluster a valid targetRef for the Vertical Pod Autoscaler (VPA) and Horizontal Pod Autoscaler (HPA), which can now map a Cluster to its instance pods.
  • The operator now emits a Warning PrimaryStatusCheckFailed event on the Cluster when the primary pod is Ready from the kubelet perspective but the operator's /pg/status check fails and failover is deferred, giving users visibility into the deferral via kubectl 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.
CloudNativePGをスタックに追加

対応が必要なリリースが出たときに、週次メールでお知らせします。 今回のセキュリティパッチと破壊的変更も、その一例です。

スタックに追加 →