배포 승인

Tier: Premium, Ultimate Offering: GitLab.com, Self-Managed, GitLab Dedicated

Protected environments로의 배포에 대한 추가적인 승인을 요구할 수 있습니다. 필요한 승인이 모두 허용될 때까지 배포가 차단됩니다.

배포 승인을 사용하여 테스트, 보안 또는 규정 준수 프로세스를 수용하세요. 예를 들어, 프로덕션 환경으로의 배포에 대해 승인을 요구할 수 있습니다.

배포 승인 구성

프로젝트에서 Protected environments로의 배포에 대한 승인을 요구할 수 있습니다.

전제 조건:

  • 환경을 업데이트하려면 적어도 Maintainer 역할이 있어야 합니다.

프로젝트에서 배포 승인을 구성하려면:

  1. 프로젝트의 .gitlab-ci.yml 파일에 배포 작업을 만듭니다:

    stages:
      - deploy
       
    production:
      stage: deploy
      script:
        - 'echo "Deploying to ${CI_ENVIRONMENT_NAME}"'
      environment:
        name: ${CI_JOB_NAME}
        action: start
    

    작업은 매뉴얼일 필요가 없습니다 (when: manual).

  2. 필요한 승인 규칙을 추가합니다.

프로젝트의 환경은 배포 전에 승인을 요구합니다.

다중 승인 규칙 추가

다중 승인 규칙을 추가하여 누가 승인하고 배포 작업을 실행할 수 있는지 제어하세요.

다중 승인 규칙을 구성하려면 CI/CD 설정을 사용합니다. API도 사용할 수 있습니다.

환경으로 배포하는 모든 작업은 실행되기 전에 차단됩니다. 필요한 승인 수가 배포를 허용하는 사용자 수보다 적도록 해야 합니다.

배포 작업이 승인되면 작업을 매뉴얼으로 실행해야 합니다.

통합 승인 설정 (비권장)

caution
이 기능은 GitLab 16.1에서 사용 중지되었으며 17.0에서 제거가 계획되어 있습니다. 이 변경은 다중 승인 규칙을 사용하세요. 이 변경은 파급 효과가 있는 변경입니다.

Protected environment에 대한 승인을 구성하려면:

  • REST API 사용하여 required_approval_count 필드를 1 이상으로 설정합니다.

이 설정이 구성된 후에는 모든 환경으로의 배포 작업이 자동으로 차단되어 승인을 기다립니다. 필요한 승인 수가 배포를 허용하는 사용자 수보다 적도록하세요.

예시:

curl --header 'Content-Type: application/json' --request POST \
     --data '{"name": "production", "deploy_access_levels": [{"group_id": 9899826}], "required_approval_count": 1}' \
     --header "PRIVATE-TOKEN: <your_access_token>" \
     "https://gitlab.example.com/api/v4/projects/22034114/protected_environments"

다중 승인 규칙으로 마이그레이션

Protected environment를 통합 승인 규칙에서 다중 승인 규칙으로 마이그레이션할 수 있습니다. 통합 승인 규칙은 환경으로 배포할 수 있는 모든 개체의 배포 작업 승인을 허용합니다. 다중 승인 규칙으로 마이그레이션하려면, 각 환경으로 배포할 수 있는 개체에 대해 새로운 승인 규칙을 만듭니다.

다중 승인 규칙으로 마이그레이션하려면:

  1. 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
  2. 설정 > CI/CD를 선택합니다.
  3. Protected environments를 확장합니다.
  4. 환경 디렉터리에서 환경을 선택합니다.
  5. 환경으로 배포할 수 있는 각 개체에 대해:
    1. 승인 규칙 추가를 선택합니다.
    2. 대화상자에서 배포 작업을 승인할 수 있는 개체를 선택합니다.
    3. 필요한 승인 수를 입력합니다.
    4. 저장을 선택합니다.

각 배포에는 각 개체에서 지정된 수의 승인이 필요합니다.

예를 들어, 아래의 Production 환경은 총 5개의 승인이 필요하며, Very Important Group 그룹과 Administrator 사용자만에서의 배포를 허용합니다.

unified approval rules

마이그레이션하려면, Very Important GroupAdministrator에 대한 규칙을 만듭니다. 필요한 승인 수를 유지하기 위해 Very Important Group의 필요한 승인을 4개, Administrator의 필요한 승인을 1개로 설정하세요. 새로운 규칙은 AdministratorProduction에서의 각 배포 작업을 승인하도록 합니다.

multiple approval rules

자체 승인 허용

기본적으로 배포 파이프라인을 트리거한 사용자는 배포 작업을 승인할 수 없습니다.

GitLab 관리자는 모든 배포를 승인하거나 거부할 수 있습니다.

배포 작업의 자체 승인을 허용하려면:

  1. 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
  2. 설정 > CI/CD를 선택합니다.
  3. Protected environments를 확장합니다.
  4. 승인 옵션에서 파이프라인 트리거러가 배포를 승인할 수 있도록 허용 확인란을 선택합니다.

배포 승인 승인 또는 거부

다중 승인 규칙이 있는 환경에서 다음을 수행할 수 있습니다:

  • 배포를 승인하여 계속 진행합니다.
  • 배포를 거부하여 중지합니다.

전제 조건:

  • Protected environment로 배포할 권한이 있어야 합니다.

배포를 승인 또는 거부하려면:

  1. 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
  2. 운영 > 환경을 선택합니다.
  3. 환경의 이름을 선택합니다.
  4. 배포를 찾고 해당 상태 뱃지를 선택합니다.
  5. 선택 사항. 배포를 승인하거나 거부하는 이유를 설명하는 코멘트를 추가합니다.
  6. 승인 또는 거부를 선택합니다.

또한 API를 사용할 수 있습니다.

해당 배포 작업은 배포가 승인되고 나서 자동으로 실행되지 않습니다.

배포 승인의 세부 정보 보기

전제 조건:

  • Protected environment로 배포할 권한이 있어야 합니다.

Protected environment로의 배포는 필요한 승인이 모두 허용된 후에만 진행될 수 있습니다.

배포의 승인 세부 정보를 보려면:

  1. 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
  2. 운영 > 환경을 선택합니다.
  3. 환경의 이름을 선택합니다.
  4. 배포를 찾고 해당 상태 뱃지를 선택합니다.

승인 상태 세부 정보가 표시됩니다:

  • 사용 가능한 승인자
  • 부여된 승인 수 및 필요한 승인 수
  • 승인을 부여한 사용자
  • 승인 또는 거부 이력

차단된 배포 보기

배포의 상태, 차단 여부를 포함한 배포 상태를 검토하세요.

배포를 보려면:

  1. 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
  2. 운영 > 환경을 선택합니다.
  3. 배포할 환경을 선택합니다.

blocked 레이블이 있는 배포는 차단된 상태입니다.

배포를 보려면 API를 사용할 수도 있습니다. status 필드가 배포가 차단됐는지 여부를 나타냅니다.

관련 주제