CI/CD 변수

자동 DevOps 도메인 설정, 사용자 정의 Helm 차트 제공 또는 애플리케이션 확장을 위해 CI/CD 변수를 사용하세요.

빌드 및 배포 변수

이러한 변수를 사용하여 빌드를 사용자 정의하고 배포하세요.

CI/CD 변수 설명
ADDITIONAL_HOSTS Ingress 호스트에 추가되는 쉼표로 구분된 완전히 정규화된 도메인 이름의 목록입니다.
<ENVIRONMENT>_ADDITIONAL_HOSTS 특정 환경에 대해 Ingress 호스트에 추가되는 쉼표로 구분된 완전히 정규화된 도메인 이름의 목록입니다. 이것은 ADDITIONAL_HOSTS 보다 우선합니다.
AUTO_BUILD_IMAGE_VERSION build 작업에 사용되는 이미지 버전을 사용자 정의합니다. 버전 목록을 확인하세요.
AUTO_DEPLOY_IMAGE_VERSION Kubernetes 배포 작업에 사용되는 이미지 버전을 사용자 정의합니다. 버전 목록을 확인하세요.
AUTO_DEVOPS_ATOMIC_RELEASE GitLab 13.0부터 Auto DevOps는 기본적으로 Helm 배포에 대해 --atomic를 사용합니다. 이 변수를 false로 설정하여 --atomic 사용을 비활성화하세요.
AUTO_DEVOPS_BUILD_IMAGE_CNB_ENABLED Auto Build에서 클라우드 네이티브 빌드팩 대신 Herokuish를 사용하도록 설정하세요. 자세한 내용을 참조하세요.
AUTO_DEVOPS_BUILD_IMAGE_CNB_BUILDER 클라우드 네이티브 빌드팩을 사용할 때 사용되는 빌더입니다. 기본 빌더는 heroku/buildpacks:18입니다. 자세한 내용을 참조하세요.
AUTO_DEVOPS_BUILD_IMAGE_EXTRA_ARGS docker build 명령에 전달되는 추가 인수입니다. 따옴표를 사용하여도 단어 분할을 방지하지 않습니다. 자세한 내용을 참조하세요.
AUTO_DEVOPS_BUILD_IMAGE_FORWARDED_CI_VARIABLES 빌드 환경(빌드팩 빌더 또는 docker build)로 전달되는 쉼표로 구분된 CI/CD 변수 이름 목록입니다.
AUTO_DEVOPS_BUILD_IMAGE_CNB_PORT GitLab 15.0 이상에서 생성된 Docker 이미지에서 노출된 포트입니다. 어떤 포트도 노출하지 않도록 false로 설정하세요. 기본값은 5000입니다.
AUTO_DEVOPS_CHART 앱을 배포하는 데 사용되는 Helm 차트입니다. 기본값은 GitLab에서 제공하는 것입니다.
AUTO_DEVOPS_CHART_REPOSITORY 차트를 검색하는 데 사용되는 Helm 차트 저장소입니다. 기본값은 https://charts.gitlab.io입니다.
AUTO_DEVOPS_CHART_REPOSITORY_NAME Helm 저장소의 이름을 설정하는 데 사용됩니다. 기본값은 gitlab입니다.
AUTO_DEVOPS_CHART_REPOSITORY_USERNAME Helm 저장소에 연결하기 위해 사용되는 사용자 이름을 설정합니다. 기본값은 자격 증명 없음입니다. AUTO_DEVOPS_CHART_REPOSITORY_PASSWORD를 설정하세요.
AUTO_DEVOPS_CHART_REPOSITORY_PASSWORD Helm 저장소에 연결하기 위해 사용되는 암호를 설정합니다. 기본값은 자격 증명 없음입니다. AUTO_DEVOPS_CHART_REPOSITORY_USERNAME을 설정하세요.
AUTO_DEVOPS_CHART_REPOSITORY_PASS_CREDENTIALS GitLab 14.2부터, 차트 아티팩트가 저장소와 다른 호스트에 있는 경우 Helm 저장소 자격 증명을 차트 서버로 전달하려면 빈 값을 설정합니다.
AUTO_DEVOPS_CHART_REPOSITORY_INSECURE Helm 명령에 --insecure-skip-tls-verify 인수를 추가하려면 빈 값을 설정하세요. 기본적으로 Helm은 TLS 검증을 사용합니다.
AUTO_DEVOPS_CHART_CUSTOM_ONLY 사용자 정의 차트만 사용하려면 빈 값을 설정하세요. 기본적으로 최신 차트가 GitLab에서 다운로드됩니다.
AUTO_DEVOPS_CHART_VERSION 배포 차트의 버전을 설정합니다. 기본값은 최신 버전을 사용합니다.
AUTO_DEVOPS_COMMON_NAME GitLab 15.5부터, TLS 인증서에 사용되는 공통 이름을 사용자 정의하기 위해 유효한 도메인 이름을 설정합니다. 기본값은 le-$CI_PROJECT_ID.$KUBE_INGRESS_BASE_DOMAIN입니다. 대체 호스트를 사용하지 않으려면 false로 설정하세요.
AUTO_DEVOPS_DEPLOY_DEBUG GitLab 13.1부터, 이 변수가 있는 경우 Helm에서 디버그 로그를 출력합니다.
AUTO_DEVOPS_ALLOW_TO_FORCE_DEPLOY_V<N> auto-deploy-image v1.0.0에서 이 변수가 있는 경우 새 메이저 버전의 차트가 강제로 배포됩니다. 자세한 내용은 경고 무시 및 배포 계속을 참조하세요.
BUILDPACK_URL 전체 빌드팩 URL입니다. Pack 또는 Herokuish에서 지원하는 URL을 지정해야 합니다.
CANARY_ENABLED 캐너리 환경에 대한 배포 정책을 정의하는 데 사용됩니다.
BUILDPACK_VOLUMES 하나 이상의 빌드팩 볼륨을 마운트하려면 파이프 |를 목록 구분 기호로 지정합니다.
CANARY_PRODUCTION_REPLICAS 생산 환경에서 캐너리 배포에 배포할 캐너리 복제본의 수입니다. CANARY_REPLICAS보다 우선합니다. 기본값은 1입니다.
CANARY_REPLICAS 캐너리 배포에 배포할 캐너리 복제본의 수입니다. 기본값은 1입니다.
CI_APPLICATION_REPOSITORY 빌드되거나 배포된 컨테이너 이미지의 저장소는 $CI_APPLICATION_REPOSITORY:$CI_APPLICATION_TAG입니다. 자세한 내용은 사용자 정의 컨테이너 이미지를 참조하세요.
CI_APPLICATION_TAG 빌드되거나 배포된 컨테이너 이미지의 태그는 $CI_APPLICATION_REPOSITORY:$CI_APPLICATION_TAG입니다. 자세한 내용은 사용자 정의 컨테이너 이미지를 참조하세요.
DAST_AUTO_DEPLOY_IMAGE_VERSION 기본 브랜치의 DAST 배포에 사용되는 이미지 버전을 사용자 정의합니다. 보통 AUTO_DEPLOY_IMAGE_VERSION과 동일해야 합니다. 버전 목록을 확인하세요.
DOCKERFILE_PATH GitLab 13.2부터 빌드 단계에 대한 기본 Dockerfile 경로를 재정의할 수 있습니다.
HELM_RELEASE_NAME helm 릴리스 이름을 재정의합니다. 하나의 네임스페이스에 여러 프로젝트를 배포할 때 고유한 릴리스 이름을 할당하는 데 사용될 수 있습니다.
HELM_UPGRADE_VALUES_FILE helm upgrade 값 파일을 재정의합니다. 기본값은 .gitlab/auto-deploy-values.yaml입니다.
HELM_UPGRADE_EXTRA_ARGS 애플리케이션을 배포할 때 helm upgrade 명령에 추가 옵션을 제공합니다. 따옴표를 사용하여도 단어 분할을 방지하지 않습니다.
INCREMENTAL_ROLLOUT_MODE 증분 배포를 활성화하기 위해 사용됩니다. manual로 설정하여 수동 배포 작업 또는 timed로 설정하여 자동으로 롤아웃 배포를 5분마다 지연하도록 설정합니다.
K8S_SECRET_* K8S_SECRET_로 접두사가 붙은 모든 변수는 Auto DevOps에 의해 배포된 애플리케이션의 환경 변수로 제공됩니다.
KUBE_CONTEXT GitLab 14.5부터, KUBECONFIG에서 사용할 컨텍스트를 선택하는 데 사용됩니다. KUBE_CONTEXT가 공백일 때, KUBECONFIG의 기본 컨텍스트(있는 경우)를 사용합니다. Kubernetes 에이전트와 함께 사용할 때 컨텍스트를 선택해야 합니다.
KUBE_INGRESS_BASE_DOMAIN 클러스터 당 도메인을 설정하는 데 사용됩니다. 자세한 내용은 클러스터 도메인을 참조하세요.
KUBE_NAMESPACE 배포에 사용되는 네임스페이스입니다. 인증서 기반 클러스터를 사용하는 경우, 이 값은 직접 덮어쓰지 않아야 합니다.
KUBECONFIG 배포에 사용할 kubeconfig입니다. 사용자 제공 값을 GitLab 제공 값보다 우선합니다.
PRODUCTION_REPLICAS 생산 환경에 배포할 복제본의 수입니다. REPLICAS를 우선하고 기본값은 1입니다. 제로 다운타임 업그레이드를 위해 2 이상으로 설정하세요.
REPLICAS 배포할 복제본의 수입니다. 기본값은 1입니다. replicaCount수정하는 대신 이 변수를 변경하세요.
ROLLOUT_RESOURCE_TYPE 사용자 정의 Helm 차트를 사용할 때 배포되는 리소스 유형을 지정합니다. 기본값은 deployment입니다.
ROLLOUT_STATUS_DISABLED 리소스 유형(예: cronjob)을 지원하지 않기 때문에 롤아웃 상태 확인을 비활성화하는 데 사용됩니다.
STAGING_ENABLED 스테이징 및 생산 환경에 대한 배포 정책을 정의하는 데 사용됩니다.
TRACE Helm 명령을 자세하게 출력하도록 설정하세요. Auto DevOps 배포 문제를 진단하는 데 이 설정을 사용할 수 있습니다.

데이터베이스 변수

경고: GitLab 16.0부터 POSTGRES_ENABLED는 더 이상 기본적으로 설정되지 않습니다.

이 변수들을 사용하여 CI/CD를 PostgreSQL 데이터베이스와 통합하세요.

CI/CD 변수 설명
DB_INITIALIZE 응용 프로그램의 PostgreSQL 데이터베이스를 초기화하는 데 사용됩니다. 응용 프로그램 팟 내에서 실행됩니다.
DB_MIGRATE 응용 프로그램의 PostgreSQL 데이터베이스를 마이그레이션하는 데 사용됩니다. 응용 프로그램 팟 내에서 실행됩니다.
POSTGRES_ENABLED PostgreSQL을 사용할지 여부입니다. PostgreSQL의 자동 배포를 활성화하려면 true로 설정하세요.
POSTGRES_USER PostgreSQL 사용자입니다. 기본값은 user입니다. 사용자 정의 사용자 이름을 사용하려면 설정하세요.
POSTGRES_PASSWORD PostgreSQL 암호입니다. 기본값은 testing-password입니다. 사용자 정의 암호를 사용하려면 설정하세요.
POSTGRES_DB PostgreSQL 데이터베이스 이름입니다. 기본값은 $CI_ENVIRONMENT_SLUG의 값입니다. 사용자 정의 데이터베이스 이름을 사용하려면 설정하세요.
POSTGRES_VERSION 사용할 postgres Docker 이미지의 태그입니다. GitLab 13.0에서는 테스트 및 배포를 위해 기본값은 9.6.16입니다 (이전에는 9.6.2였음). AUTO_DEVOPS_POSTGRES_CHANNEL1로 설정된 경우, 배포에 기본 버전인 9.6.2가 사용됩니다.
POSTGRES_HELM_UPGRADE_VALUES_FILE GitLab 13.8 이상 및 auto-deploy-image v2를 사용하는 경우, 이 변수를 사용하여 PostgreSQL의 helm upgrade 값 파일을 덮어쓸 수 있습니다. 기본값은 .gitlab/auto-deploy-postgres-values.yaml입니다.
POSTGRES_HELM_UPGRADE_EXTRA_ARGS GitLab 13.8 이상 및 auto-deploy-image v2를 사용하는 경우, 응용 프로그램을 배포할 때 helm upgrade 명령에 추가 PostgreSQL 옵션을 지정할 수 있습니다. 따옴표를 사용해도 단어가 분리되지 않습니다.
POSTGRES_CHART_REPOSITORY PostgreSQL 차트를 검색하는 데 사용하는 Helm 차트 저장소입니다. 기본값은 https://raw.githubusercontent.com/bitnami/charts/eb5f9a9513d987b519f0ecd732e7031241c50328/bitnami입니다.
POSTGRES_CHART_VERSION PostgreSQL 차트에 사용되는 Helm 차트 버전입니다. 기본값은 8.2.1입니다.

작업 비활성화 변수

이 변수들을 사용하여 CI/CD 작업을 비활성화하세요.

작업 이름 CI/CD 변수 GitLab 버전 설명
.fuzz_base COVFUZZ_DISABLED GitLab 13.2부터 .fuzz_base가 값이 "true"인 경우 작업이 생성되지 않습니다. 자세한 내용은 여기를 참조하여 직접 작업의 기능을 제공합니다.
apifuzzer_fuzz API_FUZZING_DISABLED GitLab 13.3부터 값이 "true"이면 작업이 생성되지 않습니다.
build BUILD_DISABLED   변수가 존재하는 경우 작업이 생성되지 않습니다.
build_artifact BUILD_DISABLED   변수가 존재하는 경우 작업이 생성되지 않습니다.
brakeman-sast SAST_DISABLED   값이 "true"이면 작업이 생성되지 않습니다.
canary CANARY_ENABLED   변수가 존재하는 경우 이 수동 작업이 생성됩니다.
code_intelligence CODE_INTELLIGENCE_DISABLED GitLab 13.6부터 변수가 존재하는 경우 작업이 생성되지 않습니다.
code_quality CODE_QUALITY_DISABLED   값이 "true"이면 작업이 생성되지 않습니다.
container_scanning CONTAINER_SCANNING_DISABLED   값이 "true"이면 작업이 생성되지 않습니다.
dast DAST_DISABLED   값이 "true"이면 작업이 생성되지 않습니다.
dast_environment_deploy DAST_DISABLED_FOR_DEFAULT_BRANCH 또는 DAST_DISABLED GitLab 12.4부터 값이 "true"이면 작업이 생성되지 않습니다.
dependency_scanning DEPENDENCY_SCANNING_DISABLED   값이 "true"이면 작업이 생성되지 않습니다.
flawfinder-sast SAST_DISABLED   값이 "true"이면 작업이 생성되지 않습니다.
gemnasium-dependency_scanning DEPENDENCY_SCANNING_DISABLED   값이 "true"이면 작업이 생성되지 않습니다.
gemnasium-maven-dependency_scanning DEPENDENCY_SCANNING_DISABLED   값이 "true"이면 작업이 생성되지 않습니다.
gemnasium-python-dependency_scanning DEPENDENCY_SCANNING_DISABLED   값이 "true"이면 작업이 생성되지 않습니다.
kubesec-sast SAST_DISABLED   값이 "true"이면 작업이 생성되지 않습니다.
license_management LICENSE_MANAGEMENT_DISABLED GitLab 12.7 이전 변수가 존재하는 경우 작업이 생성되지 않습니다. 작업은 GitLab 12.8부터 사용 중지되었습니다.
license_scanning LICENSE_MANAGEMENT_DISABLED GitLab 12.8부터 값이 "true"이면 작업이 생성되지 않습니다.
load_performance LOAD_PERFORMANCE_DISABLED GitLab 13.2부터 변수가 존재하는 경우 작업이 생성되지 않습니다.
nodejs-scan-sast SAST_DISABLED   값이 "true"이면 작업이 생성되지 않습니다.
performance PERFORMANCE_DISABLED GitLab 13.12 이전 브라우저 성능입니다. 변수가 존재하는 경우 작업이 생성되지 않습니다. browser_performance로 대체되었습니다.
browser_performance BROWSER_PERFORMANCE_DISABLED GitLab 14.0부터 값이 "true"이면 작업이 생성되지 않습니다. performance를 대체합니다.
phpcs-security-audit-sast SAST_DISABLED   값이 "true"이면 작업이 생성되지 않습니다.
pmd-apex-sast SAST_DISABLED   값이 "true"이면 작업이 생성되지 않습니다.
review REVIEW_DISABLED   변수가 존재하는 경우 작업이 생성되지 않습니다.
review:stop REVIEW_DISABLED   수동 작업입니다. 변수가 존재하는 경우 작업이 생성되지 않습니다.
secret_detection SECRET_DETECTION_DISABLED GitLab 13.1부터 값이 "true"이면 작업이 생성되지 않습니다.
secret_detection_default_branch SECRET_DETECTION_DISABLED GitLab 13.2부터 값이 "true"이면 작업이 생성되지 않습니다.
semgrep-sast SAST_DISABLED   값이 "true"이면 작업이 생성되지 않습니다.
sobelow-sast SAST_DISABLED   값이 "true"이면 작업이 생성되지 않습니다.
stop_dast_environment DAST_DISABLED_FOR_DEFAULT_BRANCH 또는 DAST_DISABLED GitLab 12.4부터 값이 "true"이면 작업이 생성되지 않습니다.
spotbugs-sast SAST_DISABLED   값이 "true"이면 작업이 생성되지 않습니다.
test TEST_DISABLED   변수가 존재하는 경우 작업이 생성되지 않습니다.
staging STAGING_ENABLED   변수가 존재하는 경우 이 작업이 생성됩니다.
stop_review REVIEW_DISABLED   변수가 존재하는 경우 작업이 생성되지 않습니다.

애플리케이션 비밀 변수 구성

일부 배포된 애플리케이션은 비밀 변수에 액세스해야 할 수 있습니다. Auto DevOps는 K8S_SECRET_로 시작하는 CI/CD 변수를 감지하고 배포된 애플리케이션에서 환경 변수로 사용할 수 있게 합니다.

필수 조건:

  • 변수 값은 한 줄이어야 합니다.

비밀 변수를 구성하려면:

  1. 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
  2. 설정 > CI/CD를 선택합니다.
  3. 변수를 확장합니다.
  4. K8S_SECRET_ 접두어를 가진 CI/CD 변수를 생성합니다. 예를 들어 K8S_SECRET_RAILS_MASTER_KEY라는 변수를 생성할 수 있습니다.
  5. Auto DevOps 파이프라인을 실행하고, 새로운 파이프라인을 수동으로 생성하거나 GitLab에 코드 변경을 푸시함으로써 실행할 수 있습니다.

Kubernetes 비밀

Auto DevOps 파이프라인은 애플리케이션의 비밀 변수를 Kubernetes 시크릿에 채웁니다. 이 시크릿은 환경마다 고유합니다. 애플리케이션을 배포할 때, 시크릿은 애플리케이션을 실행하는 컨테이너의 환경 변수로 로드됩니다. 예를 들어, K8S_SECRET_RAILS_MASTER_KEY라는 시크릿을 생성하면, 귀하의 Kubernetes 시크릿은 다음과 같을 수 있습니다:

$ kubectl get secret production-secret -n minimal-ruby-app-54 -o yaml

apiVersion: v1
data:
  RAILS_MASTER_KEY: MTIzNC10ZXN0
kind: Secret
metadata:
  creationTimestamp: 2018-12-20T01:48:26Z
  name: production-secret
  namespace: minimal-ruby-app-54
  resourceVersion: "429422"
  selfLink: /api/v1/namespaces/minimal-ruby-app-54/secrets/production-secret
  uid: 57ac2bfd-03f9-11e9-b812-42010a9400e4
type: Opaque

애플리케이션 비밀 업데이트

일반적으로 Kubernetes Pod에서 환경 변수는 변경할 수 없습니다. 애플리케이션 비밀을 업데이트한 후 수동으로 새 파이프라인을 생성하면 실행 중인 애플리케이션은 업데이트된 비밀을 받지 않습니다.

애플리케이션 비밀을 업데이트하려면 다음 중 하나를 수행합니다:

  • Kubernetes 배포를 다시 만들기 위해 GitLab에 코드 업데이트를 푸시합니다.
  • 업데이트된 시크릿으로 새로운 Pod를 생성하도록 실행 중인 Pod를 수동으로 삭제합니다.

다중 줄 값을 가진 변수는 Auto DevOps 스크립팅 환경의 제약으로 인해 지원되지 않습니다.

레플리카 변수 구성

배포를 확장하려면 레플리카 변수를 추가합니다:

  1. 프로젝트 CI/CD 변수로 레플리카 변수를 추가합니다.
  2. 애플리케이션을 확장하려면 다시 배포합니다.

    경고: 쿠버네티스를 직접 사용하여 응용 프로그램을 확장하지 마십시오. Helm은 변경 사항을 감지하지 못할 수 있으며, 그 후의 Auto DevOps 배포가 변경 사항을 취소할 수 있습니다.

사용자 정의 레플리카 변수

<TRACK>_<ENV>_REPLICAS 형식으로 사용자 정의 레플리카 변수를 만들 수 있습니다:

  • <TRACK>은 Helm Chart 앱 정의에 설정된 track의 대문자 값입니다. Kubernetes 레이블 만약 track이 설정되지 않았다면 사용자 정의 변수에서 <TRACK>을 생략합니다.
  • <ENV>.gitlab-ci.yml에 설정된 배포 작업의 대문자 환경 이름입니다.

예를 들어, 환경이 qa이고 트랙이 foo인 경우, FOO_QA_REPLICAS라는 환경 변수를 만듭니다:

QA 테스트:
  stage: deploy
  environment:
    name: qa
  script:
    - deploy foo

트랙 foo는 응용 프로그램의 Helm 차트에 정의되어야 합니다. 예를 들어:

replicaCount: 1
image:
  repository: gitlab.example.com/group/project
  tag: stable
  pullPolicy: Always
  secrets:
    - name: gitlab-registry
application:
  track: foo
  tier: web
service:
  enabled: true
  name: web
  type: ClusterIP
  url: http://my.host.com/
  externalPort: 5000
  internalPort: 5000

스테이징 및 프로덕션 환경을 위한 배포 정책

Auto DevOps는 일반적으로 지속적인 배포를 사용하며, 기본 브랜치에서 새 파이프라인이 실행될 때 자동으로 production 환경으로 배포합니다. 수동으로 프로덕션에 배포하려면 STAGING_ENABLED CI/CD 변수를 사용할 수 있습니다.

STAGING_ENABLED를 설정하면, GitLab은 자동으로 애플리케이션을 staging 환경에 배포합니다. 프로덕션에 배포할 준비가 되면, GitLab은 production_manual 작업을 생성합니다.

또한 프로젝트 설정에서 수동 배포를 활성화할 수 있습니다.

카나리아 환경을 위한 배포 정책

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

프로덕션에 변경 사항을 배포하기 전에 카나리아 환경을 사용할 수 있습니다.

CANARY_ENABLED을 설정하면, GitLab은 두 개의 수동 작업을 생성합니다:

  • canary - 애플리케이션을 카나리아 환경에 배포합니다.
  • production_manual - 애플리케이션을 프로덕션 환경에 배포합니다.

프로덕션으로의 점진적인 롤아웃

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

일부 파드만 사용하여 애플리케이션을 지속적으로 배포하기 위해 점진적인 롤아웃을 사용합니다. 몇 개의 파드만을 시작으로 애플리케이션을 배포할 수 있으며, 이후 수동으로 파드의 개수를 증가시킬 수 있습니다.

프로젝트 설정에서 수동 배포를 활성화하거나 INCREMENTAL_ROLLOUT_MODEmanual로 설정하여 수동 배포를 활성화할 수 있습니다. 자세한 내용은 프로젝트 설정을 참조하세요.

INCREMENTAL_ROLLOUT_MODEmanual로 설정하면, GitLab은 네 가지의 수동 작업을 생성합니다:

  1. rollout 10%
  2. rollout 25%
  3. rollout 50%
  4. rollout 100%

백분율은 REPLICAS CI/CD 변수를 기반으로 하며, 배포에 사용되는 파드의 개수를 정의합니다. 예를 들어, 값이 10이고 10% 롤아웃 작업을 실행하면, 애플리케이션은 하나의 파드에만 배포됩니다.

롤아웃 작업은 원하는 순서로 실행할 수 있습니다. 축소하려면 더 낮은 백분율 작업을 다시 실행하세요.

rollout 100% 작업을 실행한 후에는 축소할 수 없으며,배포를 롤백해야 합니다.

프로덕션으로의 점진적인 롤아웃 구성 예

INCREMENTAL_ROLLOUT_MODESTAGING_ENABLED가 모두 비활성화된 경우:

스테이징 및 롤아웃 비활성화

INCREMENTAL_ROLLOUT_MODE는 비활성화되고 STAGING_ENABLED는 활성화된 경우:

스테이징 활성화

INCREMENTAL_ROLLOUT_MODEmanual로 설정되고 STAGING_ENABLED는 비활성화된 경우:

롤아웃 활성화

INCREMENTAL_ROLLOUT_MODEmanual로 설정되고 STAGING_ENABLED가 활성화된 경우:

롤아웃 및 스테이징 활성화

프로덕션으로의 시간별 점진적인 롤아웃

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

일부 파드만 사용하여 애플리케이션을 지속적으로 배포하기 위해 시간별 점진적인 롤아웃을 사용합니다.

프로젝트 설정에서 시간별 점진적 배포를 활성화하거나 INCREMENTAL_ROLLOUT_MODE CI/CD 변수를 timed로 설정하여 활성화할 수 있습니다. 자세한 내용은 프로젝트 설정을 참조하세요.

INCREMENTAL_ROLLOUT_MODEtimed로 설정하면, GitLab은 네 가지 작업을 생성합니다:

  1. timed rollout 10%
  2. timed rollout 25%
  3. timed rollout 50%
  4. timed rollout 100%

작업 간에 5분의 지연이 있습니다.