클라우드 통합을 위한 엔드 투 엔드 테스트 인프라
이 콘텐츠는 엔드 투 엔드 수준에서 GitLab QA 테스트 시나리오와 통합되는 인프라에 관한 것입니다.
어떤 인프라가 마련되어 있나요?
현재 몇 가지 엔드 투 엔드 시나리오를 테스트하기 위해 GCP와 AWS 플랫폼을 사용합니다. 이들은 자동화된 테스트 실행을 넘어서는 리소스의 우발적인 삭제를 방지하기 위해 다른 샌드박스 프로젝트와 분리되어 있습니다. 이미 이러한 계정에 대한 접근 권한이 없다면, 접근 요청을 생성할 수 있습니다. GCP에서는 group-qa-tests-566cc6
를 사용하고, AWS에서는 클라우드 계정 eng-quality-ops-ci-cd-shared-infra-498dbd5a
를 사용합니다.
이러한 플랫폼이 필요한 테스트 시나리오가 있다면, 기존 인프라와 계정을 사용하는 것을 권장합니다. 이를 통해 엔드 투 엔드 테스트 스위트를 효율적으로 통합하고 유지 관리할 수 있습니다.
이 인프라가 필요한 이유는 무엇인가요?
GitLab은 잘 알려진 클라우드 제공업체와 잘 통합되는 여러 기능을 제공합니다. 이 통합을 완전히 테스트하기 위해 GitLab QA와 이러한 제공업체를 연결하는 인프라를 마련했습니다.
현재 GCP의 클라우드 스토리지 리소스를 사용하여 객체 스토리지(GCS)를 테스트하고 Kubernetes 클러스터를 생성합니다. AWS에서도 객체 스토리지(S3)를 테스트합니다.
이 인프라를 어떻게 유지 관리하나요?
GCP에서 리소스가 테스트 실패 시 제거되도록 하는 Janitor 프로젝트가 활성화되어 있습니다. Janitor 작업은 매일 일정한 파이프라인에서 실행되며, 오직 GCP group-qa-tests-566cc6
에만 목표를 둡니다.
AWS는 객체를 1일 후에 삭제하는 생애 주기 관리 규칙을 사용합니다. 이러한 환경에 접근할 수 있는 모든 사람이 자격 증명을 회전할 수 있도록 하는 프로세스가 마련되어 있습니다.