- 시작하기 전에
- Google Cloud Identity and Access Management (IAM)로 사용 권한 보호
- Google Artifact Registry 리포지토리에 연결
- GitLab Runner를 설정하여 Google Cloud에서 CI/CD 작업 실행하기
- CI/CD 구성 요소를 사용하여 Google Cloud에 배포하기
- 관련 주제
튜토리얼: Google Cloud 통합 설정
이 튜토리얼은 Google Cloud를 GitLab과 통합하여 Google Cloud에 직접 배포하는 방법을 보여줍니다.
Google Cloud 통합을 설정하려면:
- Google Cloud Identity and Access Management (IAM)로 사용 권한 보호
- Google Artifact Registry 리포지토리에 연결
- Google Cloud에서 CI/CD 작업을 실행하기 위해 GitLab Runner 설정
- CI/CD 구성 요소로 Google Cloud에 배포
시작하기 전에
통합을 설정하려면:
- 최소한 Maintainer 역할이 있는 GitLab 프로젝트가 있어야 합니다.
- 사용하려는 Google Cloud 프로젝트에서 Owner IAM 역할을 가지고 있어야 합니다.
- Google Cloud 프로젝트에 대해 청구가 활성화되어 있어야 합니다.
- Docker 형식과 Standard 모드를 가진 Google Artifact Registry 리포지토리가 있어야 합니다.
- Google Cloud CLI와 Terraform을 설치해야 합니다.
Google Cloud Identity and Access Management (IAM)로 사용 권한 보호
Google Cloud 사용 권한을 보호하려면 Google Cloud IAM 통합을 설정해야 합니다. 이 단계가 완료되면 GitLab 그룹 또는 프로젝트가 Google Cloud에 연결됩니다. 이제 서비스 계정 키와 관련된 위험 없이 작업 부하 정체성을 사용하여 Google Cloud 리소스에 대한 권한을 관리할 수 있습니다.
- 왼쪽 사이드바에서 Search or go to를 선택하고 그룹 또는 프로젝트를 찾습니다. 그룹에서 설정을 구성하면 기본적으로 모든 프로젝트에 적용됩니다.
- Settings > Integrations를 선택합니다.
- Google Cloud IAM을 선택합니다.
- Guided setup을 선택하고 지침에 따라 진행합니다.
Google Artifact Registry 리포지토리에 연결
이제 Google IAM 통합이 설정되었으므로 Google Artifact Registry 리포지토리에 연결할 수 있습니다. 이 단계가 완료되면 GitLab에서 Google Cloud 아티팩트를 볼 수 있습니다.
- GitLab 프로젝트에서 왼쪽 사이드바에서 Settings > Integrations를 선택합니다.
- Google Artifact Registry를 선택합니다.
- Enable integration에서 Active 체크박스를 선택합니다.
- 필드를 작성합니다:
- Google Cloud project ID: 아티팩트 레지스트리 리포지토리가 위치한 Google Cloud 프로젝트의 ID입니다.
- Repository name: 아티팩트 레지스트리 리포지토리의 이름입니다.
- Repository location: 아티팩트 레지스트리 리포지토리의 위치입니다.
- Configure Google Cloud IAM policies에서 Google Cloud IAM 정책을 설정하기 위한 화면 지침을 따릅니다. 이 정책은 GitLab 프로젝트에서 아티팩트 레지스트리 리포지토리를 사용하기 위해 필요합니다.
- Save changes를 선택합니다.
- Google Cloud 아티팩트를 보려면 왼쪽 사이드바에서 Deploy > Google Artifact Registry를 선택합니다.
이후 단계에서 컨테이너 이미지를 Google Artifact Registry에 푸시할 것입니다.
GitLab Runner를 설정하여 Google Cloud에서 CI/CD 작업 실행하기
GitLab Runner를 설정하여 Google Cloud에서 CI/CD 작업을 실행할 수 있습니다.
이 단계를 완료하면, GitLab 프로젝트에 자동 확장 가능한 러너 풀과 다수의 작업을 동시에 실행하는 임시 러너를 생성하는 러너 관리자가 있습니다.
-
GitLab 프로젝트에서 왼쪽 사이드바에서 Settings > CI/CD를 선택합니다.
-
Runners 섹션을 확장합니다.
-
New project runner를 선택합니다.
-
필드를 완료합니다.
-
Platform 섹션에서 Google Cloud를 선택합니다.
-
Tags 섹션에서 Tags 필드에 러너가 실행할 수 있는 작업 태그를 입력합니다.
이 러너에 대한 작업 태그가 없으면 Run untagged를 선택합니다.
-
선택 사항. Runner description 필드에 GitLab에 표시될 러너에 대한 설명을 추가합니다.
-
선택 사항. Configuration 섹션에 추가 구성을 추가합니다.
-
-
Create runner를 선택합니다.
-
Step 1: Specify environment 섹션의 필드를 완료하여 러너가 CI/CD 작업을 실행하는 Google Cloud의 환경을 지정합니다.
-
Step 2: Set up GitLab Runner 아래에서 Setup instructions를 선택합니다.
-
모달의 지침을 따릅니다. Google Cloud 프로젝트에 대해 Step 1만 한 번 수행하면 러너를 프로비저닝할 준비가 완료됩니다.
지침을 따랐다면, 러너가 온라인 상태가 되어 작업을 실행할 준비가 되려면 1분 정도 걸릴 수 있습니다.
CI/CD 구성 요소를 사용하여 Google Cloud에 배포하기
개발의 모범 사례는 파이프라인 전반에 걸쳐 일관성을 유지하기 위해 CI/CD 구성 요소와 같은 문법을 재사용하는 것입니다.
GitLab과 Google의 구성 요소 라이브러리를 사용하여 GitLab 프로젝트가 Google Cloud 리소스와 상호작용하도록 할 수 있습니다.
Google의 CI/CD 구성 요소를 참조하세요.
컨테이너 이미지를 Google Artifact Registry로 복사하기
시작하기 전에 GitLab 컨테이너 레지스트리에 컨테이너 이미지를 빌드하고 푸시하는 CI/CD 구성이 작동해야 합니다.
GitLab 컨테이너 레지스트리에서 Google Artifact Registry로 컨테이너 이미지를 복사하려면 파이프라인에 Google의 CI/CD 구성 요소를 포함시킵니다.
이 단계를 완료하면, 새로운 컨테이너 이미지가 GitLab 컨테이너 레지스트리에 푸시될 때마다 Google Artifact Registry에도 푸시됩니다.
-
GitLab 프로젝트에서 왼쪽 사이드바에서 Build > Pipeline editor를 선택합니다.
-
기존 구성에 다음과 같이 구성 요소를 추가합니다.
-
<your_stage>
를 이 작업이 실행되는 단계로 바꿉니다.이 단계는 이미지가 빌드되고 GitLab 컨테이너 레지스트리에 푸시된 후여야 합니다.
include: - component: gitlab.com/google-gitlab-components/artifact-registry/upload-artifact-registry@main inputs: stage: <your_stage> source: $CI_REGISTRY_IMAGE:$CI_COMMIT_SHORT_SHA target: $GOOGLE_ARTIFACT_REGISTRY_REPOSITORY_LOCATION-docker.pkg.dev/$GOOGLE_ARTIFACT_REGISTRY_PROJECT_ID/$GOOGLE_ARTIFACT_REGISTRY_REPOSITORY_NAME/$CI_PROJECT_NAME:$CI_COMMIT_SHORT_SHA
-
-
설명적인 커밋 메시지를 추가합니다. Target branch는 귀하의 기본 브랜치여야 합니다.
-
Commit changes를 선택합니다.
-
Build > Pipelines로 이동하여 새 파이프라인이 실행되는지 확인합니다.
-
파이프라인이 성공적으로 완료된 후, Google Artifact Registry에 복사된 컨테이너 이미지를 보려면 왼쪽 사이드바에서 Deploy > Google Artifact Registry를 선택합니다.
Google Cloud Deploy 릴리즈 생성
파이프라인을 Google Cloud Deploy와 통합하려면, 파이프라인에 Google의 CI/CD 구성 요소를 포함하세요.
이 단계 이후, 파이프라인은 애플리케이션으로 Google Cloud Deploy 릴리즈를 생성합니다.
-
GitLab 프로젝트에서 왼쪽 사이드바에서 Build > Pipeline editor를 선택하세요.
-
기존 구성에서 Google Cloud Deploy 구성 요소를 추가하세요.
-
구성 요소의
inputs
를 편집하세요. -
설명적인 커밋 메시지를 추가하세요. Target branch는 기본 브랜치여야 합니다.
-
Commit changes를 선택하세요.
-
Build > Pipelines로 이동하고 새로운 파이프라인이 통과하는지 확인하세요.
-
파이프라인이 성공적으로 완료된 후, 릴리즈를 보려면 Google Cloud 문서를 참고하세요.
이로써, Google Cloud와 GitLab을 통합하였으며, 이제 GitLab 프로젝트가 Google Cloud에 원활하게 배포됩니다.