エンドツーエンドテスト

CloudNativePGは、オペレーターがPostgreSQLクラスターを正しく展開および管理していることを確認する一連の エンドツーエンドE2Eテスト または統合テストを介して、各コミットの後に自動的にテストされます。

Kubernetesバージョン1.23〜1.29、およびPostgreSQLバージョン12〜16は、コミットごとにテストされ、開発プロセスの初期段階でバグを検出するのに役立ちます。

KubernetesとPostgreSQLのテストされたバージョンごとに、

kind を使用してKubernetesクラスターが作成され、GitHub

Actionsプラットフォームで実行され、そのクラスターで次のE2Eテストスイートが実行されます。

  • 基本 - オペレーターのインストール - クラスターの作成 - データストレージ用の永続ボリュームの使用

  • サービス接続 - 読み取り専用を含むサービスを介した接続 - ユーザー提供のサーバーおよび/またはクライアント証明書を介した接続 - PgBouncer

  • 自己修復 - フェールオーバー - スイッチオーバー - 10秒未満のフェールオーバーの場合のプライマリエンドポイントスイッチ - 20秒未満のスイッチオーバーの場合のプライマリエンドポイントスイッチ - 60秒未満の機能低下状態からのリカバリー- PVCの削除 - 破損したPVC

  • バックアップとリストア - ボリュームスナップショットからのバックアップと復元 - S3でBarman Cloudを使用したバックアップとスケジュールバックアップの実行 - Azure BLOBストレージでBarman Cloudを使用したバックアップとスケジュールバックアップの実行 - S3でBarman Cloudを使用してバックアップから復元する - から復元Azure BLOBストレージでBarman Cloudを使用したバックアップ-AzureでのポイントインタイムリカバリーPITR、S3ストレージ-Wal-Restoreシークエンシャル/パラレル

  • オペレーター - オペレーターの展開 - ConfigMapを介したオペレーター構成 - オペレーターポッドの削除 - オペレーターポッドのエビクション - オペレーターのアップグレード - オペレーターの高可用性

  • 可観測性 - メトリック収集 - PgBouncerメトリック - JSONログ形式

  • レプリケーション - レプリケーションスロット - 同期レプリケーション - クラスターのスケールアップとスケールダウン

  • レプリカクラスター - バックアップからのレプリカクラスターのブートストラップ - ストリーミングを介したレプリカクラスターのブートストラップ - ボリュームスナップショットを介したブートストラップ - レプリカクラスターの切断

  • プラグイン - CNPGプラグインを使用したクラスターハイバネーション - フェンシング - 接続証明書の作成

  • Postgres構成 - PostgreSQLの構成変更の管理 - PostgreSQLイメージ変更時のローリング更新 - ImageCatalog/ClusterImageCatalogイメージ変更時のローリング更新 - ホットスタンバイ依存のパラメーター変更のローリング更新 - InitDBを介したデータベースの初期化

  • ポッドのスケジューリング - トレランスとテイント - NodeSelector を使用したポッドアフィニティ - PodSpecドリフト検出のローリング更新 - インプレースアップグレード - マルチアーチの可用性

  • クラスターメタデータ - クラスターラベルとアノテーションの構成マップ - オブジェクトメタデータ

  • リカバリー - データの破損 - pg_basebackup

  • データベースのインポート - マイクロサービスアプローチ - モノリスアプローチ

  • ストレージ - ストレージ拡張 - 専用PG_WAL永続ボリューム

  • セキュリティ - AppArmorアノテーションの伝播。 Azure環境でのみ実行

  • メンテナンス - メンテナンスウィンドウを使用したノードドレイン - ポッド中断バジェットの有無にかかわらず、シングルインスタンスクラスターを使用したノードドレイン

  • Hibernation -宣言的ハイバーネーション/リハイドレーション

  • ボリュームスナップショット - コールドおよびオンラインスナップショットのバックアップ/リストア - コールドおよびオンラインスナップショットのポイントインタイムリカバリーPITR - コールドおよびオンラインスナップショットのプラグインを介したバックアップ - コールドおよびオンラインスナップショットの宣言的バックアップ

  • 管理対象ロール - 管理対象ロールの作成と更新 - Kubernetesシークレットを使用したパスワードのメンテナンス

  • テーブルスペース - テーブルスペースの宣言的作成 - 一時テーブルスペースの宣言的作成 - オブジェクトストレージからのバックアップ/リカバリー - ボリュームスナップショットからのバックアップ/リカバリー