Release notes for CloudNativePG 1.16

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

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

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

バージョン1.16.5

発売日 2022年12月21日

警告

これは、1.16.Xシリーズの最後のリリースになる予定です。 ユーザーは、すぐに新しいマイナーバージョンに更新することをお勧めします。

重要なお知らせ

  • Armando Ruocco @armru を、一貫したインパクトのある貢献により新しいCloudNativePGメンテナーとして表彰 #1167

  • ARMv7サポートの削除 #1092

  • 1.16の最終パッチリリース1.16.5。リリース1.16はサポート終了となります。

機能強化

  • kubectl-cnpgプラグインのrpm/debパッケージを追加します#1008

  • 新しいクラスター定義のデフォルトのPostgreSQLバージョンを15.1に更新します #908

  • Documentation

  • CNPGサンドボックスへの参照を削除します#1120-クイックスタートドキュメントでのモニタリングに関する指示を優先して、CNPGサンドボックスは非推奨になりました

  • “Release upgrade”ディスカッションへのリンク#1148-リリース更新ディスカッションがデフォルトになりますリリースの発表とディスカッションのためのチャンネル

  • GOVERNANCE.mdのメンテナーの名誉ステータスを文書#1033 - メンテナーがコントリビューションを続行する準備ができていない場合に続行する方法を説明します

  • プルリクエストの作成手順の改善#1132

  • 緊急バックアップのトラブルシューティング指示# 1184)

修正

  • ブートストラップのPGDATA権限が適切に750に設定されていることを確認します #1164

  • シークレットとサービスが見つからない場合にのみ作成するようにします #1145

  • 復元時に設定済みのpg-walを尊重する #1216

  • nodeToClustersマップからレプリカをフィルタリングする #1194

技術的な強化

  • テストの概要にciclops を使用する #1064 ciclops GitHubアクションに依存して、E2Eスイートの概要を提供し、そのプロジェクトから改善を継承します

  • バックポートプル要求ワークフローを追加します #965 - 注釈が付けられている場合、リリースブランチにパッチを自動的にバックポートします

  • e2eテストスイートでオペレーターログレベルを構成可能にする #1094

  • ラベルに基づいてテストの実行を有効にする #951

  • Goバージョンを1.18から1.19に更新します#1166

バージョン1.16.4

発売日 2022年11月10日

セキュリティ

  • SeccomProfile をポッドとコンテナに追加します #888

機能強化

  • cnpg プラグインのstatus コマンド

  • フェンスされたクラスターの表示を明確にします #886

  • レプリカクラスターの表示を改善します #871

  • ドキュメント

  • モニタリングページを改善し、プロメテウスとグラファナを使用してローカルシステムでCloudNativePGの可観測性機能を評価する方法に関する手順を提供します #968

  • カスタムコントローラのデザイン理由に関するページを追加します #918

修正

  • plpgsql ファンクションを使用したデータベースのインポート #974

  • ポイントインタイムリカバリーを実行するときに最も近いバックアップを適切に見つけます #949

  • ScheduledBackup 形式がKubernetes CronJob 形式に従っていないことを明確にします #883

  • 古い可能性があるKubernetesポッドの準備状況ではなく、インスタンスマネージャーからのPostgres情報に基づいてフェイルオーバーロジックをベースにします #890

  • 新しく作成されるクラスターごとにアーカイブするWALがあることを確認します。これがないため、バックアップが機能しない可能性があります #897

  • ドキュメントのbarmanObjectStore のYAMLキー名を修正しました #877

  • krew リリースを修正#866

バージョン1.16.3

発売日 2022年10月6日

機能強化

  • コントローラマネージャーにleaseDuration およびrenewDeadline パラメーターを導入して、オペレーター展開でのリーダー選択の構成を強化します #759

  • 初めてWALファイルをアーカイブする前に、バックアップオブジェクトストアが空であることを確認するメカニズムを改善します。正常にアーカイブされました

セキュリティ

  • nonroot:nonroot ユーザーを使用して、distroless/static:nonroot コンテナイメージにコピーされるインスタンスマネージャーバイナリの権限を明示的に設定します #754

修正

  • プライマリに昇格した後、スタンバイでアクティブな接続をドロップします #737

  • ネイティブPrometheusエクスポーターでのMAPPEDMETRICおよびDURATIONメトリックタイプの変換を尊重します#765

バージョン1.16.2

発売日 2022年9月6日

機能強化

  • PgBouncer接続プーラー実装での下位ネットワークTCP設定の構成を有効にする#584

  • cnpg.io/instanceName およびcnpg.io/podRole ラベルが常にポッドとPVCに存在することを確認します#632および#680

  • インスタンスのrole ラベルを基になるPVCに伝播する #634

修正

  • 新しいクラスターのプライマリをブートストラップするときにshared_preload_libraries を使用する #642

  • 別のプロセスが進行中であるかどうかをアトミックにチェックすることにより、オペレーターの複数のインプレースアップグレードプロセスが同時に実行されないようにします #655

  • 新しくアップロードされたインスタンスマネージャーを保存するためのハードコードされたファイル名の使用を避け、オペレーターのオンラインアップグレード中に発生する可能性のある競合状態を防止します。 #660

  • GetAllAccessibleDatabases 呼び出し時にパニックが発生しないようにします#641

バージョン1.16.1

発売日 2022年8月12日

機能強化

  • PostgreSQLのhuge_pages オプションの構成を有効にする#456

  • 昇格と降格中の、フェールオーバーまたはスイッチオーバー後の、昇格の要求と書き込みの実際の可用性の間で経過時間を印刷することにより、ログを強化します#371

  • クラスターステータスにPostgreSQLクラスターのタイムラインを導入する #462

  • instanceName およびclusterName ラベルをジョブ、ポッド、およびPVCに追加して、これらのリソースとの相互作用を向上させます #534

  • PostGISクラスターを作成する方法に関する説明を追加します #570

セキュリティ

  • securityContextPooler 展開に明示的に割り当てます #485

  • 読み取りタイムアウト値を内部Webサーバーに追加して、Slowloris DDoSを防止します #437

修正

  • 再起動 stopDelay とスイッチオーバー switchoverDelay は、以前に誤ってスワップされたため、正しい遅延を使用します。 switchoverDelay が設定されず、デフォルト値40000000秒を使用する場合、無期限に再起動をブロックする可能性があるため、これは重要な修正です。#531

  • クエリがエラーを返したときにメトリックコレクターがパニックを発生させないようにしました #396

  • 未チェックのポインターを参照していた安全でないデバッグメッセージを削除し、場合によっては、ログレベルに関係なくセグメンテーションフォールトを発生させます #491

  • クラスターにアノテーションがない場合、フェンシング時のパニックを防止#512

  • TLS証明書が変更されない場合は、CRDの更新を回避する #501

  • CRDに証明書を挿入しながら競合を処理する #547

  • データベースインポート

    • データベースインポートでpg_restore を実行しているときにpostgres ユーザーを使用します #411

    • モノリスインポートケースでsslmode を明示的に設定してオリジン外部サーバーとのSSL接続を制御する要件を文書化します #572

    • 妨げたバグを修正connectionParametersdbname が指定された場合のインポート作業からのインポート #569

  • バックアップとリカバリー - Google Cloudでオブジェクトストアの資格情報を正しく渡す #454

マイナーな変更

  • デフォルトのオペランドイメージをPostgreSQL 15.0に設定します

バージョン1.16.0

リリース日 2022年7月7日マイナーリリース

特徴

  • PostgreSQLのオフラインデータのインポートとメジャーアップグレード bootstrap.initdb.import セクションを導入して、PostgreSQL論理バックアップコンセプトを使用して、新しいCloudNativePGクラスター内の既存のPostgreSQLインスタンスKubernetesの外部でも、ネットワークを介してオブジェクトをインポートする方法を提供しますpg_dump /pg_restore 同じ方法を使用して、新しいクラスターでメジャーPostgreSQLのアップグレードを実行できます。この機能では、2種類のインポート microservice 新しいクラスターに1つのデータベースのみをインポートしますとmonolith 既存のインスタンスから選択したデータベースとロールをインポートします。

  • ラベルに基づいた同期レプリケーションのアンチアフィニティルール アベイラビリティーゾーンなど、プライマリが実行されているノードとは異なる特性を持つノードで同期レプリカが実行されていることを確認します

機能強化

  • 1つ以上のインスタンスがフェンスされている場合にフェイルオーバーを無効にする既存の制限を削除することにより、フェンシングを向上させます

  • DROP EXTENSION IF EXISTS を不必要に実行する代わりに、カタログに拡張機能が存在するかどうかを確認することにより、自動拡張機能管理フレームワークを強化します

  • スイッチオーバーとフェイルオーバー中のインスタンスマネージャーのログを改善します

  • オブジェクトストアからリカバリするとき、またはpg_basebackup を介してインスタンスのクローンを作成するときに、アプリケーションのデータベースの名前、その所有者、および関連シークレットの再定義を有効にしますこれはこれまでinitdb ブートストラップでのみ可能でした

  • バックアップとリカバリー

    • PostgreSQL 15

    • の将来のサポートにはBarman > = 3.0.0が必要です inheritFromAzureAD オプションを介してBarmanクラウドバックアップのAzure ADワークロードIDを有効にしますb_tran_5 barmanObjectStore.s3Credentials.region を導入して、バックアップとリカバリーオブジェクトストアの両方にAWSのリージョンAWS_DEFAULT_REGION を定義します

  • Kubernetes 1.24のサポート

変更点

  • デフォルトのオペランドイメージをPostgreSQL 15.0に設定します

  • バックアップとWALアーカイブに独自の実装に依存するのではなく、Kubernetes APIの条件を使用します

修正

  • PostgreSQLサーバーのCSVログパイプを開始するWithActiveInstance ファンクション内の初期化順序を修正し、クラスター初期化フェーズでの適切なロギングを保証します。これは、バックアップからのリカバリーのようなブートストラップ操作が失敗している場合に特に役立ちますこのパッチの前には、このようなログ標準出力チャンネルに送信されず、永久に失われました)

  • ホットスタンバイの依存パラメーターが減少し、プライマリが既に再起動している場合、不必要なスイッチオーバーを回避します

  • ALTER ROLE ステートメントでロール名を適切に引用符で囲む

  • バックアップとリカバリー

    • 要求されたリカバリタイムスタンプとバックアップの開始とを比較していたPITRの最も近いBarmanバックアップを検出するアルゴリズムを修正しますb_tran_9 トランザクションID、名前付けリストアポイント、またはrecoveryTarget セクションにbackupID と呼ばれる新しいフィールドを提供することにより「即時」ターゲット

    • barman-cloud-wal-archive およびbarman-cloud-backup コマンドを呼び出す暗号化パラメーターを修正します

    • 現在のクラスター名と一致しないサーバー名を使用してバックアップオブジェクトストアからリカバリするときにbarmanObjectStore.serverName オプションを無視するのをやめる

  • cnpg プラグイン - ユーザーが指定したときにプラグインが-n パラメーターに準拠していることを確認します - status コマンドを修正して結果を並べ替え、出力のばらつきを削除します