Cloud Deploy를 소프트웨어 배포를 위해 사용되는 다른 시스템과 통합할 수 있습니다. 이 페이지에서는 Cloud Deploy를 다음과 통합하는 방법을 설명합니다.
- 테스트 도구
- 워크플로 관리
CI 파이프라인에서 Cloud Deploy를 호출하는 방법은 CI 시스템과 통합을 참조하세요.
시작하기 전에
이 페이지에서는 다음 조건이 이미 충족되었다고 가정합니다.
적용 가능한 API가 사용 설정되었습니다.
하나 이상의 대상이 정의되어 있고 전달 파이프라인이 이 대상을 참조합니다.
다음 주제에서 알림을 수신하도록 Pub/Sub 알림을 설정했습니다.
clouddeploy-operations
clouddeploy-approvals
자동 테스트와 통합
Pub/Sub와 함께 Cloud Deploy를 사용해서 테스트를 배포 파이프라인에 통합할 수 있습니다. 이렇게 하면 지속적 배포를 위해 출시 버전을 자동으로 승격할 수 있습니다.
또한 출시에서 주석을 사용하여 테스트 결과에 대한 링크를 제공할 수 있습니다. 자세한 내용은 Cloud Deploy에 라벨 및 주석 사용을 참조하세요.
Pub/Sub를 사용하여 승격 자동화
clouddeploy-operations
주제에서 Pub/Sub 메시지를 리슨합니다.이 메시지에는 다음 속성이 포함됩니다.
Action: SUCCEED
ResourceType: Rollout
Resource: projects/.../locations/.../deliveryPipelines/.../releases/.../rollouts/...
배포가 성공했다는 알림이 수신되면 배포된 애플리케이션에서 테스트를 실행합니다.
테스트가 성공하면 Cloud Deploy를 호출해서 다음 단계로 자동으로 승격합니다.
gcloud deploy releases promote RELEASE_NAME \ --delivery-pipeline=PIPELINE_NAME \ --region=REGION \ --annotations=KEY=VALUE,...
각 항목의 의미는 다음과 같습니다.
RELEASE_NAME
출시 버전의 이름입니다. 이 값은 필수 항목입니다.
PIPELINE_NAME
이 출시 버전을 관리하는 전달 파이프라인의 이름입니다. 이 값은 필수 항목입니다.
REGION
파이프라인이 실행되는 리전입니다.
deploy/region
속성을 설정한 경우 이 플래그를 생략할 수 있습니다.KEY=VALUE,...
테스트 결과에 대한 정보 및 기타 테스트 정보를 포함할 수 있는 쉼표로 구분된 하나 이상의 키-값 문자열 쌍의 목록입니다. 예를 들면 다음과 같습니다.
gcloud deploy releases promote --annotations="from_target=test,status=stable"
출시에 대한 주석은 변경할 수 없습니다. 따라서 상태 주석을 추가하는 경우 나중에 동일 출시에서 해당 상태를 업데이트할 수 없습니다.
주석을 사용하여 테스트 결과 액세스 제공
액세스할 수 있는 테스트 결과를 가리키는 URL이 있으면 --annotations
플래그를 사용해서 이 URL을 출시의 주석으로 제공할 수 있습니다.
예를 들면 다음과 같습니다.
gcloud deploy releases promote --delivery-pipeline=my-demo-app-1 --region=us-central1 --project=my-demo-app-1-project --release=test-release-001 --annotations="test_results_url=https://example.com/results/my-demo-app-test-results-dev"
자세한 내용은 Cloud Deploy에 라벨 및 주석 사용을 참조하세요.
타사 워크플로 관리와 통합
Cloud Deploy는 작업 메시지를 Pub/Sub에 게시합니다. 워크플로 관리 도구는 이러한 Pub/Sub 주제를 구독하고 이를 사용해서 특정 워크플로를 트리거할 수 있습니다.
승인의 경우
clouddeploy-approvals
주제는 출시에 승인이 필요할 때 이를 시스템에 알립니다. 그런 후 외부 워크플로 시스템이 해당 작업을 수행해서 승인을 얻은 후 gcloud deploy rollouts approve
를 호출합니다.
rollouts approve
명령어를 사용하는 계정에는 사전 정의된 IAM 역할 roles/clouddeploy.approver
가 있어야 합니다.
외부 승인 워크플로를 설정하려면 다음 안내를 따르세요.
-
대상에 대한 정의에서
requireApproval: true
를 포함합니다. 메시지를 사용하려면
clouddeploy-approvals
Pub/Sub 주제를 구독하고 워크플로 관리 시스템을 설정합니다.워크플로 관리 시스템이
"Action": "Required"
가 포함된clouddeploy-approvals
주제에서 메시지를 수신하면 조직 요구사항에 따라 구성된 승인 워크플로를 시작합니다.이 메시지에는 또한 다음 형식으로 승인될 출시에 대한 참조가 포함됩니다.
Resource: projects/.../locations/.../deliveryPipelines/.../releases/.../rollouts/...
승인 워크플로의 출력은 출시에 대한 승인 또는 거부입니다.
워크플로 관리 시스템은 다음 명령어 형식으로 Cloud Deploy에 승인 또는 거부를 반환합니다.
승인 명령어는 다음과 같습니다.
gcloud deploy rollouts approve ROLLOUT \ --delivery-pipeline=PIPELINE_NAME \ --region=REGION \ --release=RELEASE_NAME
출시를 거부하는 명령어는 다음과 같습니다.
gcloud deploy rollouts reject ROLLOUT \ --delivery-pipeline=PIPELINE_NAME \ --region=REGION \ --release=RELEASE_NAME
각 항목의 의미는 다음과 같습니다.
ROLLOUT
승인이 요청된 출시의 이름입니다.
PIPELINE_NAME
애플리케이션의 전달 파이프라인 관리 배포입니다.
RELEASE_NAME
이 출시가 연결된 출시 버전의 이름입니다.
REGION
전달 파이프라인이 실행되는 리전입니다.
예를 들면 다음과 같습니다.
gcloud deploy rollouts approve test-rollout --delivery-pipeline=web-app --release=test-release --region=us-central1