Release notes for CloudNativePG 1.25

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

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

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

バージョン1.25.4

発売日 2025年10月23日

警告

これは、1.25.xシリーズの最後のリリースです。 1.25はサポートされていないため、新しいマイナーバージョンにアップグレードすることを強くお勧めします。

変更

  • postgres-containers およびpostgis-containers イメージとイメージカタログアーティファクトの新しい形式を採用し、デフォルトのPostgreSQLバージョンを18.0-system-trixie更新 PostgreSQL 18がサポートされるようになりました。 ( #8578#8760#8558 )

  • Cluster およびPooler リソースのmonitoring.enablePodMonitor フィールドを非推奨にしました。このフィールドは、将来のリリースでは削除される予定です。 PodMonitor リソースに依存するユーザーは、代わりに手動で作成する必要があります。 #8753

機能強化

  • 以前にハードコードされたPgBouncer auth_typeserver_tls_sslmode 、およびclient_tls_sslmode 設定をオーバーライドするサポートを追加しました。デフォルト値は以前の動作と一貫性のあるままですが、必要に応じてカスタマイズできるようになりました。 #8674

  • PostgreSQLのスマートで高速なシャットダウンの前にCHECKPOINT ステップを追加して、特にcheckpoint_timeout が高いシステムで、シャットダウン時間とレプリカプロモーション時間を削減します。 #8867

  • 公式postgres-containers プロジェクトに基づいて、非推奨またはサポートされていないOSバージョンのインスタンスマネージャーに警告を追加しました。 #8601

  • 証明書解析エラーレポートが改善されました。障害は、汎用メッセージの代わりに特定のエラーをログに記録するようになりました、トラブルシューティングを支援します。これは、Go 1.25.2および1.24.8のCVE-2025-58187修正後に特に関連しており、無効なDNS SANの解析失敗をトリガーする可能性があります。 #8801

  • 他のブートストラップ方法と一貫して、 pg_basebackup 方法を使用してクラスターをブートストラップするときに、宛先WALアーカイブパスが空であることを確認するチェックを追加しました。 #8895

  • 休止状態のクラスターでバックアップが実行されないように検証を追加しました。このようなクラスターで試行されたバックアップは、標準の前提条件チェックパターンに従って、ClusterIsHibernated の理由で失敗するようになりました。 #8870

  • pprof プロファイリングのサポートを追加しました。インスタンスは、高度なデバッグのためにCluster リソースにalpha.cnpg.io/enableInstancePprof アノテーションを追加することにより、pprof ツールを有効にできるようになりました。 #7876

  • cnpg プラグイン:

    • Ryan Wallnerが提供した、フレキシブルI/OテスターFIOイメージをwallnerryan/fiotools-aio:v2 に更新しました。 #8847

    • cnpg status backup コマンドを強化して、barman-cloud ベースのバックアッププラグインを使用する場合のより詳細なステータス情報を提供します。 ( #8780#8690 )

修正

  • パラレルWALリカバリーでカスタムWALセグメントサイズを使用する場合のバックアップ復元の失敗を修正しました。オペレーターは、復元中にWALの終わりファイルマーカーを管理しないため、バックアップが複数のWALセグメントにまたがる場合のエラーを防ぎます。 #8873

  • 以前のマイナーバージョンからのボリュームスナップショットが誤って使用され、レプリカ作成を最適化する可能性があるメジャーアップグレードのバグを修正しました。 #8475

  • 新しいクラスターをブートストラップする前にアプリケーションユーザーのシークレットを待機するようにinitdb を修正し、潜在的な競合状態を防止します。 #8663

  • cnpgi プラグインの接続再試行ロジックを修正しました。調整ループは、接続プールの変更を正しく検出し、指数バックオフを使用して「クローズドプール」エラーを削減します。 #8554

  • バックアッププラグインと連携するように、レプリカのスケーリング中のボリュームスナップショットの使用を修正しました。以前は、この最適化はツリー内バックアップ実装でのみ利用できましたが、バックアッププラグインを使用するクラスターは、新しいレプリカを作成するときにボリュームスナップショットを活用できるようになりました。 #8506

  • ブートストラップコントローラのinitコンテナの設定を正しく継承するようにPooler テンプレートを修正しました。 #8394

  • Webhookエラーを修正して、Pooler の正しいAPIグループpostgresql.cnpg.io とバックアップWebhookを使用し、一貫したAPIエラーレポートを保証します。 #8485

  • エラーを処理する際のハイバーネーションリコンサイラーの潜在的なnilポインター逆参照を修正しました。 @PascalBourdierによる寄稿。 #8756

  • 呼び出し元が誤って共有データを変更する可能性がある環境キャッシュの問題を修正しました。 LoadEnv ファンクションは、キャッシュされた環境スライスのコピーを結果、ミューテーションがキャッシュに影響を与えるのを防ぐようになりました。 #8880

バージョン1.25.3

発売日 2025年7月25日

変更

  • cnpg プラグインビルドマトリックスから386 およびARM v5/v6/v7アーキテクチャを削除し、公開されたバイナリ #7648 の数を削減します。

機能強化

  • HugePages 設定を正しく考慮することにより、shared_buffers の検証を向上させ、正確なメモリ構成チェック #7864 を保証します。

  • PostgreSQLワーカープロセスのoom_score_adj を設定して、メモリ不足が発生した場合の優先順位付けを向上させます #7891

  • ユーザーシークレットにfqdn-uri およびfqdn-jdbc-uri フィールドを追加して、アプリケーションの接続文字列管理を簡素化し、DNSベースの接続のベストプラクティス #7852 に合わせます。

  • PostgreSQLシステム識別子を追跡するために、Cluster ステータスにsystemID フィールドと関連条件を追加しました。 #7717

修正

  • 接続プーラーにミューテックスを追加して、接続マップへの同時アクセスを保護し、高同時実行環境 #7804 での安定性が向上しました。

  • 指定されたプライマリを正しく検出し、レプリカクラスターの安定性とスイッチオーバー操作を向上させることにより、レプリカクラスターインスタンスの順序を修正しました #8108

  • PVCのVolumeAttributesClass のリコンサイル、ストレージの互換性とライフサイクル管理を強化する #7885 のサポートを追加しました。

  • 内部ウェブサーバールーチンをノンブロッキングにして、負荷時の応答性を向上させました #8071

  • ensureReplicationClientLeafCertificate エラーがnot foundメッセージ #8086 に正しいsecretName を表示しない問題を修正しました。

  • PostgreSQLでサポートされているパラメーターのみを更新することにより、無効なALTER SUBSCRIPTION ステートメントを防止しました。 copy_data のようなサポートされていないオプションは、リコンシリエーションの失敗 7844 を回避するために無視されます。

  • 接続プーラーのbootstrap-controllerresources 設定を正しく適用しない問題を修正しました #7922

  • バックアップ中にtargetPod が異常になった場合、オンラインバックアップはきれいに失敗するように保証、部分的または誤解を招くバックアップ #7944

  • 障害後にバックアップリソースステータスが適切に設定されるように保証、オブザーバビリティとスクリプトの信頼性が向上します #7898

バージョン1.25.2

発売日 2025年5月23日

重要な変更

  • CloudNativePGは公式にCNCFプロジェクトになりました CloudNativePGはCloud Native Computing FoundationCNCFに受け入れられ、その進化の重要なマイルストーンを示しました。この移行の一環として、プロジェクトは現在 CloudNativePG、シリーズのLFプロジェクト、LLC の下で管理され、長期的な持続可能性とコミュニティ主導のイノベーションを保証します。 (#7203)

機能強化

  • KUBERNETES_CLUSTER_DOMAIN 構成オプションをオペレーターに追加し、ユーザーがKubernetesクラスター内で生成された完全修飾ドメイン名FQDNのドメインサフィックスを指定できるようにします。設定されていない場合、デフォルトのcluster.local が使用されます。 (#6989)

  • cnpg.io/validation アノテーションを実装し、ユーザーがCloudNativePG管理リソースで検証Webhookを無効にできるようにします。無制限の変更が許可されるため、使用には注意してください。 (#7196)

  • PostgreSQL 18でのpg_stat_wal メトリックの収集のサポートを追加しました。 #7005

  • Barman Cloud 非推奨 を介してWALファイルをアーカイブする際のLZ4、XZ、およびZ標準圧縮方法のサポートを追加しました。 (#7151)

  • CloudNativePGインターフェイスCNPG-I

  • プラグインは、 EVALUATE 動詞を実装することによりインスタンスのロールアウトをトリガーできるようになり、プラグインによる変更が適切にリコンサイルされるように保証します。 (#7126)

  • スナップショットの復元中にCNPG-Iプラグインを介してWALリカバリーのサポートを導入しました。 (#7284)

セキュリティ

  • オペレーター展開のimagePullPolicyAlways に設定して、イメージが常にレジストリから取得されるようにし、古いまたは安全でない可能性のあるローカルイメージを使用するリスクを削減します。 (#7250)

修正

  • レプリカ構成でdbname パラメーターをprimary_conninfo に追加することにより、PostgreSQL 17のネイティブレプリケーションスロット同期と論理レプリケーションフェイルオーバーを修正しました #7298

  • プラグインがWALファイルの検索に失敗した場合、externalCluster ソースで定義されたツリー内barmanObjectStore 構成へのフォールバックを防止するWAL復元操作の回帰を修正しました #7507

  • WALアーカイブにフェイルファストメカニズムを導入することにより、バックアップ効率が向上し、予期しないプライマリ降格をより迅速に検出でき、不必要な再試行を回避できます #7483

  • 要求された数を超えて1つの追加のワーカープロセスが生成される可能性があるパラレルWALアーカイブのoff-by-oneエラーを修正しました #7389

  • PostgreSQL構成を更新するときにオペレーターが2つのスイッチオーバーを実行する原因となった競合状態を解決しました。 (#6991)

  • ターゲットプーラーおよびクラスターポッドのmatchLabels スコープを調整することにより、PodMonitor 構成を修正しました。以前は、 matchLabels の範囲が広すぎるため、誤ってクラスターからラベルを継承し、意図しないターゲットからデータ収集が発生していました。 (#7063)

  • shared_buffers 構成で欠落している単位MB、GBなどのクラスターのWebhook警告を追加しました。これは、将来のリリースではエラーになります。ユーザーは構成を更新して、明示的なユニットたとえば、512 の代わりに512MB などを含める必要があります。 (#7160)

  • ボリュームスナップショットの作成中のタイムアウトエラーを再試行可能なものとして扱い、不要なバックアップの失敗を防ぎました。 (#7010)

  • OLMでのUI問題を回避するために、.spec.postgresql.synchronous.dataDurability のデフォルトロジックをCRDからWebhookに移動しました。 (#7600)

  • CloudNativePGインターフェイスCNPG-I

  • プラグインのTLS証明書が変更された場合の自動リロードを実装しました。 (#7029)

  • プラグインを使用してバックアップを実行するときに、オペレーターがプラグイン接続を適切に閉じるようにしました。 (#7095、#7096)

  • ローカルプラグイン操作のタイムアウトを削除し、より長いバックアップまたはWALアーカイブの実行中の障害を回避することにより、CNPG-Iのパフォーマンスと復元力を向上させました#7496。

  • cnpg プラグイン

  • logs pretty コマンドのバッファサイズを増加して、より大きなログ出力をより適切に処理します#7281。

  • plugin-name パラメーターはプラグインベースのバックアップに必要であり、非プラグインバックアップ方法では許可されないように保証 #7506

  • primaryUpdateMethodrestart に設定されている場合、命令的再起動中にプライマリポッドが再作成され、その定義をレプリカと調整します。 (#7122)

変更

  • 新しいクラスター定義に合わせて、デフォルトのPostgreSQLバージョンを17.5に更新しました。 (#7556)

  • 新しいPooler 展開#7399用に、デフォルトのPgBouncerバージョンを 1.24.1 に更新しました。

バージョン1.25.1

発売日 2025年2月28日

機能強化

  • オペレーターのスタートアッププローブを導入して、信頼性を向上させ、初期化中の早期の活性プローブの障害を防止します。 (#7008)

  • プーラーでの-r サービスを使用するためのサポートを追加しました。 (#6868)

  • pgbench プラグインのオプションの--ttl フラグを導入し、ユーザー定義の期間の後に完了したジョブの自動削除を有効にします。 (#6701)

  • ボリュームスナップショットのAzure CSIドライバーからの既知のエラーメッセージを再試行可能としてマークし、復元力を向上させます。 (#6906)

  • 新しいクラスター定義に向けて、デフォルトのPostgreSQLバージョンを17.4に更新しました。 (#6960)

セキュリティ

  • オペレーターイメージビルドプロセスが強化され、セキュリティと透明性が強化されました。イメージはcosign で署名され、ソフトウェア部品表SBOMと来歴データを組み込んだOCI証明書が生成されます。さらに、OCIアノテーションが追加されて、トレーサビリティを向上させ、イメージの完全性を保証します。

バグ修正

  • .spec.probes が定義されている場合のデフォルトのプローブノブ値の一貫性のない動作を修正し、ユーザーがfailureThreshold を含むすべての設定をオーバーライドできるようにします。起動プローブで指定されない場合、 failureThreshold.spec.startupDelay / periodSeconds デフォルト10 、オーバーライド可能になりました。同じロジックが.spec.livenessProbeTimeout を介してlivenessプローブに適用されます。 (#6656)

  • 管理対象サービスポートが、デフォルトのオペレーター定義のポートより優先されるようになりました。 (#6474)

  • インスタンスの再起動後、構成変更が適用されるまで、WALメトリックを利用できない問題を修正しました。 (#6816)

  • モノリシックデータベースのインポートで、ロールが指定されていない場合にロールのインポートがスキップされる問題を修正しました。 (#6646)

  • PgBouncer 1.24で導入された新しいメトリックのサポートを追加しました。 (#6630)

  • クラスターリハイドレーション後にDatabasePublication 、およびSubscription CRDがcluster resource has been deleted, skipping reconciliation でスタックする問題を解決しました。このパッチは、 status.observedGeneration を強制的にゼロにし、適切なリコンシリエーションを保証します。 (#6607)

  • プライマリサーバー再起動後のタイムリーな調整を保証することにより、レプリケーション依存のパラメーター削減の処理が向上しました。 (#6440)

  • CNPG-Iプラグイン構成に新しいisWALArchiver フラグを導入し、ユーザーはプラグインをWALアーカイバーとして指定できます。これにより、WALアーカイブの一貫性を維持しながら、ツリー内Barman Cloudサポートからプラグインへのシームレスな移行が可能になります。 (#6593)

  • レプリカクラスターのブートストラップ中にoverride.conf が一貫してpostgresql.conf に含まれるように保証、構成設定の欠落によるレプリケーション障害を防ぎます。 (#6808)

  • プライマリロールの変更中の障害を防ぐために、pg_rewind を呼び出す前にoverride.conf が正しく初期化されていることを確認しました。 (#6670)

  • Webhook応答を強化して、該当する場合は警告とエラーの両方を結果、診断の精度を向上させます。 (#6579)

  • オペレーターバージョンが正しくリコンサイルされていることを確認しました。 (#6496)

  • データディレクトリのより正確なチェックを使用することにより、PostgreSQLバージョンの検出が向上しました。 (#6659)

  • ボリュームスナップショットバックアップ

    • 未使用のバックアップ接続が適切にクリーンアップされない問題を修正しました。 (#6882)

    • インスタンスマネージャーが、失敗したボリュームスナップショットバックアップによって残された古いPostgreSQL接続を閉じるようにしました。 (#6879)

    • 別のボリュームが既に進行中であるときに、オペレーターが新しいボリュームスナップショットバックアップを開始できないようにしました。 (#6890)

  • cnpg プラグイン:

    • promote プラグインコマンドの機能を復元しました。 (#6476)

    • サイドカーを含むすべてのコンテナからログを収集するようにkubectl cnpg report --logs <cluster> を強化しました。 (#6636)

    • ClusterImageCatalog を使用するときにpgbench ジョブを実行できるようにしました。 (#6868)

技術的な機能強化

  • Kubernetes client-gen のサポートを追加し、すべてのCloudNativePG CRDのGoクライアントの自動生成を有効にします。 (#6695)

バージョン1.25.0

発売日 2024年12月23日

機能

  • 宣言的データベース管理 Database カスタムリソース定義CRDを導入し、ユーザーはクラスター内でPostgreSQLデータベースを宣言的に作成および管理できます。 (#5325)

  • 論理レプリケーション管理 PostgreSQL論理レプリケーションの宣言管理用にPublication およびSubscription CRDを追加します。これらにより、レプリケーションのセットアップが簡素化され、CloudNativePGへのオンライン移行が容易になります。 (#5329)

  • CNPG-Iの実験サポート サードパーティのプラグインを介してCloudNativePG機能を拡張し、CNPGエコシステムの成長を促進するように設計された標準化フレームワークであるCNPG-I CloudNativePGインターフェイスの紹介。 Barman Cloud Plugin はライブ例として機能し、バックアップとリカバリーのワークフローを強化するためにプラグインを開発する方法を示しています。 CNPG-Iサポートは現在実験的ですが、PostgreSQL拡張機能に似ており、オペレーターのコアコードを変更せずにCloudNativePGを拡張する強力なアプローチを提供します。このエキサイティングな新機能を形作るためのコミュニティのフィードバックと貢献を歓迎します。

機能強化

  • dataDurability オプションを.spec.postgresql.synchronous スタンザに追加し、ユーザーが同期レプリケーションでrequired デフォルトまたはpreferred の耐久性を選択できるようにします。 (#5878)

  • .spec.probes スタンザを介してスタートアップ、ライブネス、および準備状況プローブのカスタマイズを有効にします。 (#6266)

  • 追加のpg_dump およびpg_restore オプションをサポートして、データベースのインポートの柔軟性を強化します。 (#6214)

  • CloudNativePGコントローラにmaxConcurrentReconciles のサポートを追加し、デフォルトを10に設定して、オペレーターがすぐに大規模な展開を効率的に管理する能力を向上させます。 (#5678)

  • 事前定義されたユーザー、具体的にはsuperuser およびapp 用に生成されたシークレットにcnpg.io/userType ラベルを追加します。 (#4392)

  • ScheduledBackupsのspec.schedule フィールドの検証が向上し、潜在的な構成ミスの警告が生成されます。 (#5396)

  • cnpg プラグイン:

    • プラグインをサポートするようにbackup コマンドを強化します。 (#6045)

    • APIサーバーでのHTTP要求のUser-Agent ヘッダーを尊重します。 (#6153)

バグ修正

  • レプリカとして再同期する前に、元のプライマリがWALファイルキューをアーカイブにフラッシュすることにより、復旧時間を削減し、フェールオーバー中のデータの一貫性を強化します。 (#6141)

  • ブートストラップ中にPGDATA ボリュームとともにWALボリュームをクリーンアップします。 (#6265)

  • 以前に生成されたPersistentVolumeClaims がすべて欠落している場合、クラスターフェーズをUnrecoverable に設定するようにオペレーターを更新します。 (#6170)

  • .spec.postgresql.synchronous.methodfirst に設定されている場合のsynchronous_standby_names GUCの解析を修正しました。 (#5955)

  • CRDステータスの特定の条件にパッチを適用する際の潜在的な競合状態を解決し、同時更新の信頼性を向上させます。 (#6328)

  • ロールの変更を修正して、データベースコンテキストではなくトランザクションレベルで適用します。 (#6064)

  • プライマリ上のoverride.conf ファイルからprimary_slot_name 定義を削除して、常に空になるようにします。 (#6219)

  • PgBouncerポッドでPGHOST を含むlibpq環境変数を構成して、コンテナ内からpsql を使用してpgbouncer 仮想データベースへのシームレスなアクセスを有効にします。 (#6247)

  • イメージカタログの変更を確認するときに、クラスターステータスの不要な更新を削除します。 (#6277)

  • 適切なバックアップ構成なしで外部サーバーからのリカバリー中のパニックを防止します。 (#6300)

  • 2つの異なる値のログに名前フィールドが一貫して使用されない、構造化ログのキー衝突の問題を解決しました。 (#6324)

  • SQLステートメントのinRolesフィールドの適切な引用符を確認して、ロール管理中に生成されたSQLの構文エラーを防ぎます。 (#6346)

  • cnpg プラグイン:

    • kubectl コンテキストがpsql コマンドに適切に渡されることを確認します。 (#6257)

    • status コマンドで空のときに物理バックアップブロックを表示しないようにします。 (#5998)

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

  • Kubernetes 1.32、1.31、1.30、および1.29

  • PostgreSQL 17、16、15、14、および13 -デフォルトイメージPostgreSQL 17.2 - PostgreSQL 12のサポートを公式に終了しました - PostgreSQL 13のサポートは2025年11月12日に終了します