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でWarningPrimaryStatusCheckFailedイベントを発行するようになり、ユーザーに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 、
``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 、
変更
修正
有効な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 )
短い名前の代わりにプラグイン
ServiceFQDNを使用するようにプラグインの接続を修正し、クラスターレベルのプロキシがポッドに自動的に注入される際の障害を回避します。 @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スーパーユーザーを取得するチェーンを閉じます。 (
アップグレードの影響
ユーザー所有テーブルを読み取るカスタムモニタリングクエリー、または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-33816pgproto3のメモリセーフティと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バージョンの詳細な構成のサポートにより
PoolerCRDを改善しました。これにより、管理者は、プーラーからクライアント、およびプーラーからサーバーへの接続に関する厳密なセキュリティコンプライアンス要件を満たすことができます。 @alex1989huによる投稿。 ( #9571 )アップグレードジョブで
BackoffLimit=0を設定することにより、メジャーアップグレードの信頼性が向上し、失敗したpg_upgradeの不必要な再試行を防止します。ユーザーがコンテナイメージを元に戻すときに、オペレーターは失敗したジョブを自動的に削除するため、クラスターが元のバージョンで正常に再起動できます。 ( #10104 、 #10298 )調整ループの主要なフェーズ中にネイティブKubernetesイベントを発行することにより、オペレーターの可観測性を向上させ、オペレーターの意思決定プロセスと管理リソースのライフサイクルを
kubectl get eventsを介して直接可視化します。 #10040バックアップリソースの
cnpg.io/reconciliationDisabledアノテーションのサポートの拡張。これにより、管理者は、特定のバックアップオブジェクトのオペレーターの調整ロジックを一時的にフリーズできます。 @GabriFedi97による寄稿。 #10020bin_pathフィールドをpostgresql.extensionsスタンザ、およびImageCatalogおよびClusterImageCatalogリソースに追加しました。これにより、拡張機能はPostgresプロセスのPATH環境変数に自動的に追加される外部バイナリのディレクトリパスを指定できます。 #10250envフィールドを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から分離され、ユーザーはオペレーターが要求の処理を開始したときを追跡できます。 #9351Pendingフェーズを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 )
サポートされているバージョン
Kubernetes 1.35、1.34、および1.33
PostgreSQL 18、17、16、15、および14 - PostgreSQL 18.3がデフォルトイメージです。 PostgreSQL 14 support ends on November 12, 2026