클라우드 통합을 위한 엔드투엔드 테스트 인프라

이 콘텐츠는 엔드투엔드 수준에서 GitLab QA 테스트 시나리오와 통합되는 인프라에 관한 내용입니다.

우리가 갖고 있는 인프라는 무엇인가요?

현재 몇 가지 엔드투엔드 시나리오를 테스트하기 위해 GCP 및 AWS 플랫폼을 사용하고 있습니다. 이들은 자동화된 테스트 실행을 벗어나는 리소스의 실수적 삭제를 방지하기 위해 다른 샌드박스 프로젝트와 분리되어 있습니다. 이미 해당 계정에 액세스할 수 없다면 액세스 요청을 생성할 수 있습니다. GCP에서는 group-qa-tests-566cc6을 사용하고, AWS에서는 eng-quality-ops-ci-cd-shared-infra-498dbd5a 클라우드 계정을 사용합니다.

이 플랫폼이 필요한 테스트 시나리오가 있다면, 이미 존재하는 인프라와 계정을 사용하여 엔드투엔드 테스트 스위트를 효율적으로 통합하고 유지할 수 있도록 권장합니다.

왜 이러한 인프라가 필요한가요?

GitLab에는 잘 알려진 클라우드 제공업체와 원활하게 통합되는 여러 기능이 있습니다. 이 통합을 완전히 테스트하기 위해 GitLab QA와 이러한 제공업체를 연결하는 인프라가 구축되어 있습니다.

현재 GCP를 사용하여 Cloud Storage 리소스를 사용하여 Object Storage (GCS)를 테스트하고 Kubernetes 클러스터를 생성합니다. 또한, AWS를 사용하여 Object Storage (S3)를 테스트합니다.

이 인프라를 어떻게 유지하나요?

GCP의 자원이 테스트 실패로 삭제되지 못했을 경우 리소스를 정리하는 Janitor 프로젝트가 활성화되어 있습니다. Janitor 작업은 일정한 파이프라인에서 매일 실행되며 배타적으로 GCP group-qa-tests-566cc6을 대상으로 합니다.

AWS는 객체를 1일 후에 삭제하기 위해 라이프사이클 관리 규칙을 사용합니다. 환경에 액세스 권한이 있는 사람은 프로세스를 사용하여 자격 증명을 회전시킬 수 있습니다.