배포 승인

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

보호된 환경으로의 배포에 대해 추가적인 승인을 요구할 수 있습니다. 필요한 모든 승인이 이루어질 때까지 배포가 차단됩니다.

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

배포 승인 구성

프로젝트에서 보호된 환경으로의 배포에 대해 승인을 요구할 수 있습니다.

전제 조건:

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

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

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

    stages:
      - deploy
    
    production:
      stage: deploy
      script:
        - 'echo "${CI_ENVIRONMENT_NAME}(으)로 배포 중"'
      environment:
        name: ${CI_JOB_NAME}
        action: start
    

    이 작업은 수동 작업일 필요가 없습니다 (when: manual).

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

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

여러 승인 규칙 추가

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

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

환경으로 배포하는 모든 작업이 차단되어 승인을 기다리게 됩니다. 필요한 승인 수가 배포를 허용하는 사용자 수보다 작아야 합니다.

배포 작업이 승인되고 나면, 작업을 수동으로 실행해야 합니다.

통합 승인 설정 (폐기 예정)

경고: 이 기능은 GitLab 16.1에서 폐기 예정되었으며 17.0에서 제거될 예정입니다. 대신 여러 승인 규칙을 사용하세요. 이 변경은 호환성이 없는 변경입니다.

보호된 환경에 대한 승인을 구성하려면:

  • 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"

여러 승인 규칙으로 마이그레이션

보호된 환경을 통합 승인 규칙에서 여러 승인 규칙으로 마이그레이션할 수 있습니다. 통합 승인 규칙을 사용하면 환경으로 배포할 수 있는 모든 개체가 배포 작업을 승인할 수 있습니다. 여러 승인 규칙으로 마이그레이션하려면, 각 개체에게 환경으로 배포할 수 있는 권한을 가진 새 승인 규칙을 생성하세요.

다음과 같이 여러 승인 규칙으로 마이그레이션합니다:

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

각 배포는 지정된 개체로부터 필요한 승인 수를 요구합니다.

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

통합 승인 규칙

마이그레이션하기 위해, Very Important GroupAdministrator에 대한 규칙을 생성합니다. Very Important Group에 대한 필요한 승인 수를 네 개, Administrator에 대한 필요한 승인 수를 하나로 설정하여 필요한 승인 수를 유지합니다. 새 규칙은 AdministratorProduction에서 각 배포 작업을 승인해야합니다.

여러 승인 규칙

자체 승인 허용

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

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

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

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

배포 승인 또는 거부

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

  • 배포를 승인하여 진행하도록 허용합니다.
  • 배포를 거부하여 방지합니다.

전제 조건:

  • 보호된 환경에 배포할 권한이 있어야 합니다.

배포를 승인하거나 거부하려면:

  1. 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
  2. 운영 > 환경을 선택합니다.
  3. 환경의 이름을 선택합니다.
  4. 배포의 행에서 승인 옵션을 선택합니다 (). 배포를 승인 또는 거부하기 전에 배포의 승인 세부 정보를 볼 수 있습니다.
  5. 선택 사항. 배포를 승인하거나 거부하는 이유를 설명하는 댓글을 추가합니다.
  6. 승인 또는 거부를 선택합니다.

또한 API를 사용하여 배포를 승인하거나 거부할 수 있습니다.

해당 배포 작업은 승인된 후에 자동으로 실행되지 않습니다.

배포의 승인 세부 정보 보기

전제 조건:

  • 보호된 환경에 배포할 권한이 있어야 합니다.

보호된 환경으로의 배포는 필요한 모든 승인이 허용된 후에만 진행될 수 있습니다.

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

  1. 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
  2. 운영 > 환경을 선택합니다.
  3. 환경의 이름을 선택합니다.
  4. 배포의 행에서 승인 옵션을 선택합니다 ().

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

  • 해당 승인자
  • 허용된 승인 수 및 필요한 승인 수
  • 승인을 허용한 사용자
  • 승인 또는 거부 기록

차단된 배포 보기

배포의 상태를 검토하고, 배포가 차단되었는지 여부를 확인합니다.

배포를 보려면:

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

차단됨 라벨이 있는 배포는 차단됩니다.

배포를 보려면 API를 사용하여 배포의 상태 필드가 배포가 차단되었는지를 나타냅니다.

관련 주제