외부 배포 도구의 배포 추적
Heroku, ArgoCD와 같은 외부 배포 도구의 배포를 GitLab에서 추적합니다.
GitLab은 기본 제공 배포 솔루션 을 제공하지만 Heroku나 ArgoCD와 같은 외부 배포 도구를 선호할 수 있습니다. GitLab은 이러한 외부 도구에서 배포 이벤트를 받아 GitLab 내에서 배포를 추적할 수 있습니다. 예를 들어, 추적을 설정하면 다음과 같은 기능을 사용할 수 있습니다: 머지 리퀘스트가 언제 어느 환경에 배포되었는지 확인 . 환경 또는 배포 날짜별로 머지 리퀘스트 필터링 . DevOps Research and Assessment (DORA) 메트릭 . 환경 및 배포 보기 . 배포별 새로 포함된 머지 리퀘스트 추적 . Note GitLab은 해당 외부 배포를 승인하고 활용할 수 없으므로 보호된 환경 , 배포 승인 , 배포 안전성 , 배포 롤백 을 포함한 일부 기능은 사용할 수 없습니다. 배포 추적 설정 방법 # 외부 배포 도구는 일반적으로 배포 상태가 변경될 때 추가 API 요청을 실행하는 웹훅 을 제공합니다. GitLab 배포 API 에 요청을 보내도록 도구를 구성할 수 있습니다. 이벤트 및 API 요청 흐름의 개요는 다음과 같습니다: 배포가 실행을 시작하면 running 상태로 배포를 생성합니다 . 배포가 성공하면 배포 상태를 success 로 업데이트합니다 . 배포가 실패하면 배포 상태를 failed 로 업데이트합니다 . Note GitLab API 인증을 위해 프로젝트 액세스 토큰 을 생성할 수 있습니다. 예시: ArgoCD 배포 추적 # ArgoCD 웹훅 을 사용하여 배포 이벤트를 GitLab 배포 API에 전송할 수 있습니다. 다음은 ArgoCD가 새 리비전을 성공적으로 배포할 때 GitLab에 success 배포 레코드를 생성하는 예시 설정입니다: 새 웹훅을 생성합니다. 다음 매니페스트 파일을 저장하고 kubectl apply -n argocd -f <manifiest-file-path> 로 적용할 수 있습니다: apiVersion: v1 kind: ConfigMap metadata: name: argocd-notifications-cm data: trigger.on-deployed: | - description: Application is synced and healthy. Triggered once per commit. oncePer: app.status.sync.revision send: - gitlab-deployment-status when: app.status.operationState.phase in ['Succeeded'] and app.status.health.status == 'Healthy' template.gitlab-deployment-status: | webhook: gitlab: method: POST path: /projects/<your-project-id>/deployments body: | { "status": "success", "environment": "production", "sha": "{{.app.status.operationState.o
