Release notes for CloudNativePG 1.29

CloudNativePGの1.29マイナーリリースのユーザーに表示される変更の履歴。

変更の完全なリストについては、 commits を参照してください。

GitHubのリリースブランチで。

バージョン1.29.2

発売日 2026年6月29日

重要な変更

  • ネイティブツリー内Barman Cloudサポートの非推奨通知を更新して、1.30.0ではなくCloudNativePG 1.31.0で削除されることを反映しています。ユーザーは引き続きBarman Cloudプラグインに移行することをお勧めします。 ( #11083 )

  • cluster 参照は、Database 、Pooler 、Publication 、Subscription 、およびScheduledBackup リソースで不変になりました。別のクラスターでこれらのオブジェクトのいずれかをポイントすることには、明確に定義されたセマンティクスがなく、以前はコントローラを一貫性のない状態のままにしました。更新は、CEL検証ルールを介してAPIサーバーで拒否されるようになりました。 ( #10743 )

機能強化

  • PostgreSQL 19のpg_upgrade に追加された拡張パスのサポートに基づいて、イメージボリューム拡張を使用するクラスターでPostgreSQL 19以降へのpg_upgrade インプレースメジャーアップグレードを有効にしました。アップグレード中にJob 、ソースおよびターゲットバージョンの拡張イメージはサイドバイサイドでマウントされるため、古いサーバーはライブラリを保持し、失敗したアップグレードはきれいに元に戻ります。 #10366 )

  • ラベルセレクターをCluster スケールサブリソースstatus.selector に追加し、Cluster を垂直ポッドオートスケーラーVPAおよび水平ポッドオートスケーラーHPAの有効なtargetRef にします。Cluster をインスタンスポッドにマッピングできるようになりました。 @sebv004による寄稿。 ( #8996 )

  • プライマリポッドがkubeletパースペクティブからReady であるが、オペレーターの/pg/status チェックが失敗し、フェイルオーバーが遅延される場合、オペレーターはCluster でWarning PrimaryStatusCheckFailed イベントを発行するようになり、ユーザーにkubectl describe cluster を介して遅延を可視化します。 ( #10509 )

  • オペレーターは、ポッドがロールされたときにCNPG-iプラグインを自動的にリロードするようになりました。EndpointSlices バッキングプラグインServices を監視し、新しいポッドがReady になるとプラグインを使用してすべてのクラスターを再エンキューするため、アップグレードされたプラグインは待機せずに選択されます次の再同期。 ( #10836 )

セキュリティとサプライチェーン

  • ``CVE-2026-55769`` / ``GHSA-x8c2-3p4r-v9r6`` オペレーター発行の接続での``search_path`` ピンニング データベース所有者はpublic スキーマにオーバーロードされたビルトイン演算子を植え、search_path を変更して、クラスタースーパーユーザーとして実行される演算子イントロスペクションプローブがこれらのオーバーロードを解決できるようにpg_catalog の前に、 COPY ... FROM PROGRAM を介してポッド内RCEにつながる可能性があるCWE-426 特権エスカレーションチェーンCVE-2018-1058 と同じクラス。オペレーターは、プールされたすべての接続にsearch_path = pg_catalog, public, pg_temp を固定するため、起動メッセージで出荷され、テナント制御のデフォルトより優先されます。 ( #10774 、

GHSA-x8c2-3p4r-v9r6 )

  • ``CVE-2026-55765`` / ``GHSA-w3gf-xc94-wvmj`` オペレーターサイドのSCRAM-SHA-256パスワードエンコーディング オペレーターは現在SCRAM-SHA-256がCREATE /ALTER ROLE ... PASSWORD を発行する前にクリアテキストロールパスワードをエンコードするため、リテラルPostgreSQLが解析およびpg_stat_statements などの拡張機能またはpgaudit がキャプチャする場合があります)は、平文シークレットではなくSCRAMベリファイアです。事前ハッシュされたMD5またはSCRAM値は変更せずに転送され、シークレットごとのアノテーションcnpg.io/passwordPassthrough: "enabled" はオプトアウトします。 ( #10724 、

GHSA-w3gf-xc94-wvmj )

変更

  • Kubernetes 1.36のサポートを追加しました。 ( #10900 )

  • デフォルトのPostgreSQLバージョンを18.4に更新しました。 ( #10719 )

  • パブリッククラウドプロバイダーでオペレーターのテストに使用されるKubernetesバージョンを更新しました。 ( #10720 , #10563 , #11033 )

修正

  • 有効なPostgreSQLパラメーター名ではないキーを受け入れるspec.postgresql.parameters を修正しました。これにより、postgresql.conf に任意の指示子を注入する可能性があります。キー名がWebhookによって検証されるようになりました。 ( #11029 )

  • クラスターがレプリカに降格された後、古いプライマリ側のステータスを報告する宣言的なDatabase 、Publication 、およびSubscription オブジェクトを修正しました。コントローラはレプリカの状態を再チェックし、Cluster を監視するようにして、降格がすぐに検出されるようにします。 ( #10871 )

  • 対応するJob およびPVCが作成される前にインスタンスシリアルカウンタが進められたことが原因で発生した非シークエンシャルのポッド名たとえば -1 、-3 を修正した。バンプは、これらのリソースが存在した場合にのみ持続されるようになりました。 ( #10491 )

  • WAL-archiverプラグインが既存のクラスターで有効になっている場合のスイッチオーバーデッドロックを修正しました。primaryUpdateMethod: switchover では、クリーンな降格にはまだ不足しているアーカイバーサイドカーが必要であるため、プライマリをロールアウトできませんでした。オペレーターはプライマリポッドを再作成するため、サイドカーが挿入され、アーカイブが再開されます。このチェックは、 Barman CloudプラグインなどのネイティブサイドカーrestartPolicy: Always を備えたinitコンテナとしてアーカイバーを注入するプラグインもカバーしています。 ( #11032 , #11059 )

  • インスタンス作成ジョブがバックオフ制限を使い果たしたときに、クラスターがSetting up primary に無期限に滞在する問題を修正した。オペレーターは、ターミナルジョブの障害を検出し、クラスターを回復不可としてマークし、失敗したジョブに名前を付け、そのログをポイントします。 ( #11035 )

  • ファイナライザーリコンサイラーの前にレプリカゲートが実行され、ファイナライザーがリリースされない、レプリカクラスターのTerminating で行き詰まったDatabase 、Publication 、またはSubscription の削除を修正しました。レプリカでは、PostgreSQLオブジェクトはプライマリクラスターに残されます。 ( #10853 )

  • 生き残ったCRが所有するPostgreSQLオブジェクトをドロップするdelete 再利用ポリシーと競合する重複Database またはSubscription を修正しました。ドロップは、記録された調整に基づいてゲートされるようになりました。 ( #10870 )

  • キャッシュされたシークレットバージョンが無効化されず、パスワードが再適用されなかったため、スーパーユーザーアクセスが無効になってから再度有効になった後、postgres スーパーユーザーがロックアウトされたままになる問題を修正した。 @mhartmann-jaconiによって診断されました。 ( #10834 )

  • バックアップがrunning に到達する前に、バックアップを実行しているインスタンスマネージャーが再起動された場合たとえば、オペレーターのアップグレードに続くインプレースアップグレードによって、バックアップがstarted フェーズでスタックする問題を修正した。調整が再スケジュールされるため、失われたセッションが検出されます。 ( #10859 )

  • SPDYフォールバックとWebSocketをネゴシエートするようにexec / attach ストリーミングを修正し、SPDYを削除したKubernetesバージョンと、WebSocket execアップグレードを拒否するOpenShiftなどのプラットフォームの両方との互換性を復元します。 @bartscheersによる寄稿。 ( #10876 、 #10933 )

  • 並列Backup オブジェクトが競合した場合のリソースリークを修正しました。バックアップは厳密に作成時の順序で実行されるようになりました、したがって、既に実行中のバックアップが新しいバックアップにプリエンプトされることはなく、そのレプリケーションスロットとPostgreSQLセッションは、プライマリで孤立しなくなりました。 @GabriFedi97による寄稿。 ( #10747 )

  • 参照されたシークレットを取得できなかった場合に、PostgreSQLロールのパスワードをクリアするロール調整を修正しました。シークレットが利用可能になるまでロールは変更されず、アクションごとのエラーが集計されて可視性が向上します。 ( #10053 )

  • メトリックエクスポーターのセットアップエラー一般的にコントローラとの重複キーレースがロールバックしstreaming_replica 作成とウェッジレプリカ参加をロールバックしたブートストラップ障害を修正しました。 metrics-exporterステップが別のトランザクションで実行されるようになりました。 @BlaiseAntonyによる寄稿。 ( #10749 )

  • Backup は作成されたが、そのステータスパッチが着地しなかったときに発生するScheduledBackup コントローラループを修正しました。コントローラは、次の反復にAlreadyExists でループする代わりに、既存のBackup を採用するようになりました。 ( #10612 )

  • Cluster が削除されたPooler をリコンサイルするときのnilポインターパニックを修正しました。 ( #10667 )

  • すべての名前付けログパイプpostgres 、postgres.csv 、およびpostgres.json がWithActiveInstance 中にコンシューマを取得し、名前付けパイプの代わりに通常のファイルが作成されないようにブートストラップログ処理を修正しました。 ( #10043 )

  • アドレスを角かっこで囲むことにより、無効なIPv6 URLの生成を修正しました。 @Infinoidによる寄稿。 ( #10682 )

  • 構成がenabled: false を設定している場合、外部クラスタープラグインがアクティブなものとして扱われるのを修正しました。 ( #10932 )

  • 復元ジョブが古いCluster プライマリがまだ記録されておらず、タイムラインがまだ設定されていないを読み取り、その.history ファイルがスプリットブレインガードによって拒否される可能性があるオブジェクトストアからのブートストラップリカバリ中のレースを修正しました。これが発生すると、リカバリはベースバックアップのタイムラインで停止し、後のタイムラインでコミットされたトランザクションをサイレントにドロップしました。クラスタータイムラインが設定されていないときに履歴ファイルを使用できるようになりました。 @dennispidunによる寄稿。 ( #10818 )

  • サーバーとクライアントCAが同じシークレットデフォルトに解決する場合、クラスター作成中のキャッシュレースを修正しました。古いインフォーマーキャッシュは、AlreadyExists で失敗した冗長Create をトリガーし、クラスターがUnable to create required cluster objects でスタックしたままになる可能性がありました。オペレーターは、名前が一致する場合、既に取得したCAシークレットを再利用するようになりました。 ( #10989 )

  • 他のブートストラップ方法で既に適用されているのと同じプリフライトディレクトリチェックを強制することにより、既存のPGDATA たとえばレプリカポッドの再起動後を上書きまたは失敗するpg_basebackup ブートストラップパスを修正しました。これにより、静的にプロビジョニングされたPVCがサイレントに上書きされるのを防ぎます。 ( #11006 )

  • リコンサイル後のプラグインフックがエラーを返したときのHealthy とプラグイン障害フェーズ間のCluster フェーズのフラッピングを修正しました。 Healthy フェーズは、成功したリコンシリエーションの最後のステップとして登録されるため、プラグインエラーで終了するループはHealthy を報告しません。 @GabriFedi97による寄稿。 ( #10421 )

  • 外部サーバーのシークレットがローテーションされた後の古い証明書データと部分的な読み取りを修正しましたたとえば、2つの証明書から1つに縮小するCAバンドル。ファイルはアトミックに書き込まれるようになったため、libpqは常に古い値または新しい値を読み取ります。ミックスする。 @Anand-240による寄稿。 ( #10975 )

  • 短い名前の代わりにプラグインService FQDNを使用するようにプラグインの接続を修正し、クラスターレベルのプロキシがポッドに自動的に注入される際の障害を回避します。 @kdautreyによる寄稿。 ( #10921 )

  • 要求ごとのCluster 作成/更新検証Webhookメッセージからの過剰なオペレーターログノイズを修正し、info ではなくdebug にログに記録されるようになりました。 ( #10984 )

  • データPVCが作成された後、初期化ジョブが開始される前に、ステータスパッチが競合するファーストプライマリブートストラップデッドロックを修正しました。孤立した保留中のPVCがインスタンスとしてカウントされ、ブートストラップゲートをブロックしたままになります。 PVC状態リコンサイラーは、割り当てられたシリアルを再利用してブートストラップジョブを再作成します。 ( #11039 )

  • 外部クラスター名とシークレットセレクター参照が検証なしでファイルシステムパスに結合されるのを修正し、インスタンスマネージャーが接続マテリアルをダンプするときに.. コンポーネントまたはパスセパレーターが外部シークレットディレクトリをエスケープします。これらの値は検証Webhookで拒否され、書き込みサイトで再チェックされます。 @r0binakによって報告されました。 ( #11045 )

  • pending で永久にスタックするバックアップを修正しました。コンカレントバックアップゲートはリコンサイルごとに実行され、インスタンスマネージャーによって非同期で書き込まれた既に完了したフェーズを上書きする可能性があります。ゲートは、バックアップフェーズがまだ設定されていない場合またはpending である場合にのみ実行されます。 ( #11056 )

  • 古いキャッシュにより、オペレーターが既にプロビジョニングしたスナップショットを再作成し、 AlreadyExists で失敗した場合、失敗として永久にマークされる宣言的VolumeSnapshot バックアップが修正されました。既存のスナップショットがこのバックアップのラベルを運び、それを採用する場合、オペレーターは衝突を許容するようになりました。外部スナップショットとの衝突は引き続きエラーとして表面化します。 ( #11071 )

  • スナップショットが既にプロビジョニングされている場合でも、ファイナライズステップ中に一時的なインスタンスマネージャー接続エラーたとえば、短いポッドネットワークの中断からのダイヤルタイムアウトで破棄されるボリュームスナップショットバックアップを修正しました。このようなネットワークエラーは、ターミナルとして扱われる代わりに再試行されるようになりました。 ( #11069 )

  • トークンの保存と移行メタデータのクリーンアップの間でリコンサイルが再キューイングされたときに、status.demotionToken を失うレプリカスイッチオーバーを修正しましたたとえば、不安定なWebhookに対して失敗したクリーンアップパッチ。空の変更なしトークンは、格納されている値をパッチして戻されません。 ( #11075 )

  • cnpg プラグイン:

  • Windowsでkubectl cnpg psql を修正しました。実行はUnix専用のシステムコールに依存し、「Windowsではサポートされていません」で失敗しました。 Windowsは子プロセスとしてkubectl exec を起動するようになりました。 @Utkarsh-sharma47による寄稿。 #10972 )

  • ロググループごとのタイマーが解放されなかった、ビジークラスターでのkubectl cnpg logs -f の無制限のメモリリークを修正しました。タイマーが反復にわたって再利用されるようになりました。 @Anand-240による寄稿。 ( #10976 )

バージョン1.29.1

発売日 2026年5月8日

セキュリティとサプライチェーン

  • ``CVE-2026-44477`` / ``GHSA-423p-g724-fr39`` メトリックエクスポーター特権エスカレーション メトリックエクスポーターはpostgres スーパーユーザーとして認証されなくなりました。 pg_monitor 特権のみを持つ専用のcnpg_metrics_exporter ロールを使用し、低特権のデータベースユーザーがPostgreSQLスーパーユーザーを取得するチェーンを閉じます。 (

GHSA-423p-g724-fr39 )

アップグレードの影響 ユーザー所有テーブルを読み取るカスタムモニタリングクエリー、またはPUBLIC CONNECT が取り消されたデータベースに対してtarget_databases: '*' を使用するカスタムモニタリングクエリーは、 cnpg_metrics_exporter に対する明示的なGRANT ステートメントが必要です。 Custom query privileges and safety および Manually creating the metrics exporter role を参照

モニタリング文書で。

レプリカクラスターの場合、ソースプライマリクラスターを使用するレプリカクラスターの前に、ソースプライマリクラスターをアップグレードします。 cnpg_metrics_exporter ロールはソースプライマリで作成され、ダウンストリームに複製されます。最初にアップグレードされたレプリカクラスターは、ソースプライマリがアップグレードされるまで、不足しているロールをスクレイピングします。上記のリンクのあるmanual-recoveryセクションでは、レプリカクラスターについてもカバーしています。

  • デフォルトのモニタリングクエリーのスキーマ修飾カタログ参照 すべてのpg_catalog オブジェクトを明示的に修飾することにより、出荷されたモニタリング構成とドキュメントサンプルを強化しました。非修飾の参照は、search_path を介して解決されます。データベースユーザーはこれを操作して、ビルトインオブジェクトをシャドウできます。 ( #10576 )

  • 検出可能なSBOMと来歴証明書 オペレーターコンテナイメージに添付されるSBOMおよびSLSA来歴がOCI 1.1リファラー仕様に従うようになったため、標準のレジストリツールとサプライチェーンスキャナーでそれらを自動的に検出できます。 ( #10601 )

  • ``github.com/jackc/pgx/v5`` のCVE修正 CVE-2026-33816 pgproto3 のメモリセーフティとGHSA-j88v-2chj-qfwx 単純プロトコルのドル引用符で囲まれた文字列処理を介したSQLインジェクションのアップストリームの修正をピックアップするためにv5.9.2にバンプされました。 ( #10437 、 #10499 )

  • GoランタイムのCVE修正 crypto/x509 、crypto/tls 、net/http 、およびnet のアップストリームの修正をピックアップするためにGo 1.26.3でビルドされています。CVE-2026-32280、CVE-2026-32281、CVE-2026-33810 、CVE-2026-33814、CVE-2026-33811、CVE-2026-39825)。 ( #10463 、 #10647 )

  • ビルドパイプラインの強化 Go 1.26.3バンプはCVE-2026-42501 cmd/go モジュールチェックサム検証にも対処し、リリースビルド中のサプライチェーンのエクスポージャを削減します。影響を受けるコードパスには、実行中のオペレーターから到達できません。 ( #10647 )

変更

  • TLSピア検証をVerifyPeerCertificate からVerifyConnection に切り替えました。これは、完了したハンドシェイクごとに実行されます前者は、再開されたTLS 1.3セッションでスキップされます。現在、CloudNativePGではセッションの再開が有効になっていないため、これに目に見える効果はありませんが、後でセッションキャッシュが導入された場合の将来的な検証になります。 ( #10478 )

修正

  • 元のプライマリがプライマリラベルを保持したフェールオーバーウィンドウを修正しました。フェイルオーバー中に一時的なネットワーク分割の後などに返された場合、 -rw サービスはそれにルーティングし続け、レプリカは再接続でき、コミットされた書き込みはpg_rewind に失われます。古いプライマリにはunhealthy のラベルが付けられ、フェールオーバー中にサービストラフィックから分離されます。 ( #10409 )

  • プライマリをホストするノードが到達不能になったときにトリガーされないフェールオーバーを修正しました。オペレーターは、そのシナリオではTrue として古いままであるContainersReady ではなく、ポッドのReady 条件kubeletがレポートを停止するとノードコントローラによってFalse に反転されるを読み取るようになりました。スプリアスフェールオーバーガード #10445 と組み合わせると、Kubernetes自分自身がポッドを準備ができていないことをマークした場合にのみフェールオーバーがトリガーされます。 ( #10448 )

  • プライマリのHTTPステータスエンドポイントでの一時的な障害によって発生した偽のフェイルオーバーを修正しました。 ( #10445 )

  • PostgreSQL構成値のバックスラッシュと制御文字のエスケープを修正しました。以前は、 log_line_prefix のようなパラメーターのこのような文字は、構成ファイルを破損するか、実行時にサイレントに削除される可能性がありました。 ( #10515 )

  • 各引数をシェル引用符で囲むようにrestore_command コンストラクトを修正しました。空白を含むdestinationPath たとえば s3://my bucket/wal などの値は、POSIXシェルによってワード分割され、別の引数としてWAL復元ツールに渡されました。 ( #10518 )

  • 入場WebフックのrecoveryTarget 検証の強化 targetXID は負でない32ビット整数であり、targetName は64バイト未満でASCII制御文字が含まれていない必要があります。不正な値は、後のPostgreSQL復旧中に失敗するのではなく、受付時に拒否されます。 ( #10565 )

  • 残りのpgsql_tmp* ディレクトリがデータディレクトリに存在する場合、スナップショットのリストアが失敗する問題を修正しました。 ( #10447 )

  • PVCストレージサイズとリソース要求が同時に変更された場合に発生するデッドロックを修正しました。 ( #10427 )

バージョン1.29.0

発売日 2026年3月31日

重要な変更

  • ネイティブツリー内Barman Cloudサポートの非推奨通知を更新して、1.29.0ではなくCloudNativePG 1.30.0で削除されることを反映しています。ユーザーは引き続きBarman Cloudプラグインに移行することをお勧めします。 ( #10167 )

機能

  • イメージカタログのPostgreSQL拡張機能 PostgreSQL拡張機能をサポートするようにImageCatalog 機能を拡張しました。これにより、ユーザーはカタログ内の拡張機能固有のイメージを定義および管理でき、カスタマイズされたPostgreSQLビルドの展開が簡素化されます。 #9781

  • ポッドセレクターを介した動的なネットワークアクセス制御 pg_hba.conf ルールを動的に管理するためにpodSelectorRefs の宣言的定義を導入しました。ラベルセレクターを使用してクライアントポッドを識別することにより、オペレーターは自動的にエフェメラルIPアドレスを解決し、それに応じてPostgreSQLホストベースの認証ルールを更新します。これにより、同じ名前空間内の許可されたワークロードのみがデータベースに接続できるようになり、手動のIP管理または静的CIDRレンジが必要なくなります。 #10148

  • 共有``ServiceAccount`` サポート オプションのserviceAccountName フィールドをCluster およびPooler 仕様の両方に追加しました。これにより、複数のリソースが既存のサービスアカウントを共有でき、すべてのクラスターとプーラーにわたってワンタイムIAM構成AWS IRSA、GCP Workload Identity、またはAzure Workload Identityなどを容易にします。 @bozkayasalihxによる寄稿。 #9287

機能強化

  • TLS暗号スイートと最小/最大TLSバージョンの詳細な構成のサポートによりPooler CRDを改善しました。これにより、管理者は、プーラーからクライアント、およびプーラーからサーバーへの接続に関する厳密なセキュリティコンプライアンス要件を満たすことができます。 @alex1989huによる投稿。 ( #9571 )

  • アップグレードジョブでBackoffLimit=0 を設定することにより、メジャーアップグレードの信頼性が向上し、失敗したpg_upgrade の不必要な再試行を防止します。ユーザーがコンテナイメージを元に戻すときに、オペレーターは失敗したジョブを自動的に削除するため、クラスターが元のバージョンで正常に再起動できます。 ( #10104 、 #10298 )

  • 調整ループの主要なフェーズ中にネイティブKubernetesイベントを発行することにより、オペレーターの可観測性を向上させ、オペレーターの意思決定プロセスと管理リソースのライフサイクルをkubectl get events を介して直接可視化します。 #10040

  • バックアップリソースのcnpg.io/reconciliationDisabled アノテーションのサポートの拡張。これにより、管理者は、特定のバックアップオブジェクトのオペレーターの調整ロジックを一時的にフリーズできます。 @GabriFedi97による寄稿。 #10020

  • bin_path フィールドをpostgresql.extensions スタンザ、およびImageCatalog およびClusterImageCatalog リソースに追加しました。これにより、拡張機能はPostgresプロセスのPATH 環境変数に自動的に追加される外部バイナリのディレクトリパスを指定できます。 #10250

  • env フィールドをpostgresql.extensions スタンザ、およびImageCatalog およびClusterImageCatalog リソースに追加しました。これにより、クラスター管理者はPostgresプロセスのカスタム環境変数を定義できます。このフィールドは、拡張機能の絶対マウントパスに動的に解決する${image_root} プレースホルダーをサポートしています。 #10375

  • プラグインのファイナライザーを実装して、対応するサービスが削除されたときにプラグインによって管理されているリソースが正常にクリーンアップされるようにします。 #9560

  • 各調整サイクルの前にインスタンスがプライマリであることを確認することによりロール管理を向上させ、読み取り専用レプリカでの不要な調整試行と偽のエラーメッセージを回避します。 ( #9971 )

  • オペレーターは、クラスターに新しいPVCを追加するときにprimaryUpdateMethod を優先するようになりました、ストレージの拡張または追加中にロールアウト戦略たとえば、スイッチオーバー対リスタートが尊重されるようにします。 ( #9720 )

  • alpha.cnpg.io/unrecoverable アノテーションロジックを洗練して、Ready 状態にまだ到達していないポッドでも機能できるようにし、スタックしたインスタンスのリカバリーを容易にします。 ( #9968 )

  • 回復不能な問題無効な資格情報または存在しないクラウドバケットなどが発生したバックアップ用の「ターミナルエラー」フェーズを導入しました。これにより、オペレーターは運命の操作の再試行を停止し、リソースの枯渇を防止し、ステータスですぐに明確なフィードバックを提供します。 #9353

  • Backup ステータスにreconciliationStartedAt およびreconciliationTerminatedAt フィールドを導入することにより、長時間実行バックアップのモニタリングが向上しました。この変更により、オペレーターの内部ライフサイクルが実際のバックアップツールの実行タイミングstartedAt / stoppedAt から分離され、ユーザーはオペレーターが要求の処理を開始したときを追跡できます。 #9351

  • Pending フェーズをBackup ステータスに追加して、バックアップがキューに入れられ、利用可能なワーカーまたはインスタンスの可用性を待機しているときを明示的に示します。 #9364

セキュリティとサプライチェーン

  • セキュリティベストプラクティスの統合 OpenSSFベースラインスキャナーを統合し、SECURITY-INSIGHTS.yaml ファイルをリポジトリに追加して、業界標準のセキュリティレポートと調整します。 ( #10054 , #10062 )

  • SLSA来歴とSBOM リリースバイナリとコンテナイメージにSLSAサプライチェーンレベルソフトウェアアーティファクトの来歴を追加しました。さらに、GoReleaserパイプライン内のソフトウェア部品表SBOM生成を有効にして、依存関係の透明性を向上させました。 ( #10048 , #10074 )

  • パスワード漏洩防止 PostgreSQLが特定の調整フェーズ中にログにロールパスワードを漏洩する可能性がある潜在的なセキュリティリスクを修正しました。 ( #9950 )

変更

  • デフォルトのPostgreSQLバージョンを18.3イメージ 18.3-system-trixie に更新しました。 ( #10090 )

修正

  • 同期レプリケーションを使用するクラスターに影響を与えるオペレーターのアップグレード中のデッドロックを修正しました。新旧のオペレーターバージョンを実行するポッドが異なるPostgreSQL構成ハッシュを計算し、均一性チェックが無期限にブロックされ、ローリング更新とインプレースアップグレードの両方の進行を防ぎます。 ( #10342 )

  • ディスク領域チェックがインスタンスマネージャーの起動をブロックしたため、WALディスクがいっぱいになったときにフェンシングアノテーションを処理できない問題を修正しました。チェックは、ライフサイクルループの後半で、フェンシングが評価された後、実行されるようになりました。 ( #10302 )

  • 初期ブートストラップに使用されるVolumeSnapshot が削除されている場合、レプリカがPending 状態でスタックしてしまう問題を修正しました。オペレーターは、使用前にスナップショットの存在を検証するようになりました。スナップショットが見つからない場合は、次の利用可能な候補を使用しようとするか、 pg_basebackup にフォールバックします。 ( #10192 )

  • 「監視対象プライマリ」ロールアウト戦略が、以前にスケジュールされた更新の遅延を引き起こしていた、使用可能なすべてのロールアウトスロットを消費しないようにしました。 @ermakov-olegによる寄稿。 ( #9977 )

  • 特定のホットスタンバイパラメーターの変更がレプリカクラスターに正しく適用されなかった問題を修正しました。 ( #9952 )

  • 「Continue」結果が返されたときに後続のプラグインをスキップする可能性があるCNPG-Iリコンサイラーフックのバグを修正しました。 @sharifmshakerによる寄稿。 ( #9978 )

  • 現在ポッドに接続されていないPVCのファイルシステムのサイズを変更しようとしたときに発生したデッドロックシナリオを修正しました。 @jmealoによる寄稿。 ( #9981 )

  • ConnectionParameters で構成された外部クラスターを受け入れるようにブートストラップリカバリソースのWebhook検証を修正しました pg_basebackup ベースのリカバリーの場合。以前は、 BarmanオブジェクトストアまたはCNPG-iプラグインも構成されていない限り、これらは誤って拒否されました。 ( #10268 )

  • 拡張機能とテーブルスペースのボリューム名に接頭辞が付けられ、標準のクラスターボリュームとの名前の衝突を回避します。 ( #9973 )

  • 正常でないクラスターを冬眠させる場合、オペレーターはWaitingForHealthy 条件を報告するようになり、cnpg status を介して遅延されたハイバーネーション状態を可視化します。 ( #10193 )

  • ターゲットポッドが存在しない場合でも、フェンシングが正しく動作するように修正しました。フェンシングはクラスターレベルのアノテーションで動作し、ポッドの存在に依存しないでください。インスタンス名の検証は、 cnpg fencing on コマンドでのみ実行されます。 ( #10035 )

  • クラスターおよびプーラーサービスリコンサイラーを修正して、パッチ更新戦略を使用するときにすべての仕様フィールドの変更を正しく処理します。リコンサイラーはRFC 7386 JSONマージパッチを使用するようになり、クラウドプロバイダー設定フィールド loadBalancerClass など 誤って削除されるのを防ぎます。 ( #10190 、 #10311 )

  • パラレルWALリストアに影響を与える非推奨のツリー内Barman Cloudバックアップ実装の競合状態を修正しました。ここで、プリフェッチされたファイルはダウンロード中に読み取られる可能性があり、「invalid Checkpoint Record」エラーでPostgreSQLのリカバリーが失敗します。 ( #10285 )

  • タイムライン履歴ファイルの検証を修正して、プラグインベースのWALリストアにも適用されます。以前は、 #9650 で導入された保護はツリー内リストアのみをカバーしており、プラグインがチェックをバイパスして将来のタイムライン履歴ファイルをダウンロードできるため、レプリカでタイムライン不一致エラーが発生していました。 ( #9849 )

  • cnpg プラグイン

  • cnpgプラグインは、ImagePullSecretをpgbench ジョブポッドテンプレートに正しく伝播するようになりました。 ( #10174 )

サポートされているバージョン