クラウドインテグレーションのためのエンドツーエンドのテストインフラ
このコンテンツは、GitLab QAテストシナリオとエンドツーエンドレベルでインテグレーションするインフラについてです。
どのようなインフラがあるのでしょうか?
現在、いくつかのエンドツーエンドのシナリオをテストするためにGCPとAWSのプラットフォームを使用しています。これらは、自動化されたテスト実行を超えて実行されるリソースの偶発的な削除を防ぐために、他のサンドボックスプロジェクトから分離されています。これらのアカウントへのアクセス権がまだない場合は、アクセスリクエストを作成することができます。GCPではgroup-qa-tests-566cc6
、AWSではクラウドアカウントeng-quality-ops-ci-cd-shared-infra-498dbd5a
。
これらのプラットフォームを必要とするテストシナリオがある場合、エンドツーエンドのテストスイートを効率的に統合し、メンテナーできるように、既存のインフラとアカウントを使用することをお勧めします。
なぜこのようなインフラがあるのでしょうか。
GitLabには有名なクラウドプロバイダとうまくインテグレーションする機能がいくつかあります。このインテグレーションを完全にテストするために、私たちはGitLab QAとこれらのプロバイダーをつなぐインフラを用意しています。
私たちは現在、オブジェクトストレージ(GCS) のテストやKubernetesクラスタの作成にGCPのクラウドストレージリソースを利用しています。また、AWSもオブジェクトストレージ(S3)のテストに使っています。
このインフラをどのようにメンテナーするのでしょうか?
私たちは、テストが失敗してリソースを削除できなかった場合に、GCPのリソースを確実にクリーンアップするJanitorプロジェクトをアクティビティで実施しています。Janitorジョブは、スケジュールされたパイプラインで毎日実行され、GCPgroup-qa-tests-566cc6
のみを対象としています。
AWSはライフサイクル管理ルールを使用して、1日後にオブジェクトを削除します。私たちは、これらの環境にアクセスできる誰もが認証情報をローテーションできるようにするプロセスを確立しています。