クラウドインテグレーションのためのエンドツーエンドのテストインフラ

このコンテンツは、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日後にオブジェクトを削除します。私たちは、これらの環境にアクセスできる誰もが認証情報をローテーションできるようにするプロセスを確立しています。