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 Auto DevOps는 Helm 배포에 기본적으로 --atomic을 사용합니다. 이 변수를 false로 설정하여 --atomic의 사용을 비활성화합니다.
AUTO_DEVOPS_BUILD_IMAGE_CNB_BUILDER Cloud Native Buildpacks로 빌드할 때 사용되는 빌더입니다. 기본 빌더는 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 차트 아티팩트가 리포지터리와 다른 호스트에 있는 경우 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입니다. 대체 호스트를 Ingress에 설정하지 않으려면 false로 설정합니다.
AUTO_DEVOPS_DEPLOY_DEBUG 이 변수가 있는 경우 Helm은 디버그 로그를 출력합니다.
AUTO_DEVOPS_ALLOW_TO_FORCE_DEPLOY_V<N> auto-deploy-image v1.0.0부터 이 변수가 있는 경우 차트의 새 주 버전을 강제로 배포합니다. 자세한 내용은 경고 무시 및 배포 계속을 참조하세요.
BUILDPACK_URL 전체 빌드팩 URL입니다. Pack에서 지원하는 URL을 지정해야 함.
CANARY_ENABLED 카나리아 환경에 대한 배포 정책을 정의하는 데 사용됩니다.
여러 Buildpack 볼륨을 마운트하는 데 사용될 하나 이상의 Buildpack 볼륨을 지정합니다. 디렉터리 구분자로 파이프 |를 사용하세요.  
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 빌드 단계에 대한 기본 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로 설정하거나 자동 롤아웃 배포에는 5분마다 지연이 있는 timed로 설정하세요.
K8S_SECRET_* Auto DevOps에서 배포된 애플리케이션에 대해 환경 변수로 사용할 수 있는 K8S_SECRET_로 시작하는 모든 변수입니다.
KUBE_CONTEXT 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 배포 문제를 진단하는 데 도움을 받을 수 있습니다.

데이터베이스 변수

caution
GitLab 16.0부터 POSTGRES_ENABLED는 기본적으로 설정되지 않습니다.

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

CI/CD 변수 설명
DB_INITIALIZE 응용 프로그램의 PostgreSQL 데이터베이스를 초기화하는 데 사용됩니다. 응용 프로그램 pod 내에서 실행됩니다.
DB_MIGRATE 응용 프로그램의 PostgreSQL 데이터베이스를 마이그레이션하는 데 사용됩니다. 응용 프로그램 pod 내에서 실행됩니다.
POSTGRES_ENABLED PostgreSQL을 활성화할지 여부입니다. 자동으로 PostgreSQL을 배포하려면 true로 설정하세요.
POSTGRES_USER PostgreSQL 사용자입니다. 기본값은 user입니다. 사용자 정의 사용자 이름을 사용하려면 설정하세요.
POSTGRES_PASSWORD PostgreSQL 암호입니다. 기본값은 testing-password입니다. 사용자 정의 암호를 사용하려면 설정하세요.
POSTGRES_DB PostgreSQL 데이터베이스 이름입니다. 기본값은 $CI_ENVIRONMENT_SLUG의 값입니다. 사용자 정의 데이터베이스 이름을 사용하려면 설정하세요.
POSTGRES_VERSION 사용할 postgres Docker 이미지의 태그입니다. 테스트 및 배포에는 기본값으로 9.6.16이 사용됩니다. AUTO_DEVOPS_POSTGRES_CHANNEL1로 설정되어 있으면 배포에 기본 버전 9.6.2가 사용됩니다.
POSTGRES_HELM_UPGRADE_VALUES_FILE auto-deploy-image v2를 사용하는 경우, 이 변수를 사용하여 PostgreSQL의 helm upgrade 값 파일을 재정의할 수 있습니다. 기본값은 .gitlab/auto-deploy-postgres-values.yaml입니다.
POSTGRES_HELM_UPGRADE_EXTRA_ARGS 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   값이 "true"인 경우 작업이 생성되지 않습니다. 자세히 알아보기(../../user/application_security/coverage_fuzzing/index.md)
apifuzzer_fuzz API_FUZZING_DISABLED   값이 "true"인 경우 작업이 생성되지 않습니다.
build BUILD_DISABLED   변수가 존재하면 작업이 생성되지 않습니다.
build_artifact BUILD_DISABLED   변수가 존재하면 작업이 생성되지 않습니다.
brakeman-sast SAST_DISABLED   값이 "true"인 경우 작업이 생성되지 않습니다.
canary CANARY_ENABLED   이 매뉴얼 작업은 변수가 존재하는 경우 생성됩니다.
code_intelligence CODE_INTELLIGENCE_DISABLED   변수가 존재하면 작업이 생성되지 않습니다.
code_quality CODE_QUALITY_DISABLED   값이 "true"인 경우 작업이 생성되지 않습니다.
container_scanning CONTAINER_SCANNING_DISABLED   값이 "true"인 경우 작업이 생성되지 않습니다.
dast DAST_DISABLED   값이 "true"인 경우 작업이 생성되지 않습니다.
dast_environment_deploy DAST_DISABLED_FOR_DEFAULT_BRANCH or DAST_DISABLED   값이 "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   값이 "true"인 경우 작업이 생성되지 않습니다. 작업은 GitLab 15.9부터 사용되지 않습니다
load_performance LOAD_PERFORMANCE_DISABLED   변수가 존재하면 작업이 생성되지 않습니다.
nodejs-scan-sast SAST_DISABLED   값이 "true"인 경우 작업이 생성되지 않습니다.
performance PERFORMANCE_DISABLED GitLab 13.12 및 이전 버전 브라우저 성능. 변수가 존재하면 작업이 생성되지 않습니다. browser_performance로 대체됩니다.
browser_performance BROWSER_PERFORMANCE_DISABLED   브라우저 성능. 변수가 존재하면 작업이 생성되지 않습니다. 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   값이 "true"인 경우 작업이 생성되지 않습니다.
secret_detection_default_branch SECRET_DETECTION_DISABLED   값이 "true"인 경우 작업이 생성되지 않습니다.
semgrep-sast SAST_DISABLED   값이 "true"인 경우 작업이 생성되지 않습니다.
sobelow-sast SAST_DISABLED   값이 "true"인 경우 작업이 생성되지 않습니다.
stop_dast_environment DAST_DISABLED_FOR_DEFAULT_BRANCH or DAST_DISABLED   값이 "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

애플리케이션 시크릿 업데이트하기

일반적으로 쿠버네티스 파드에서 환경 변수는 변경할 수 없습니다. 애플리케이션 시크릿을 업데이트하고 새 파이프라인을 매뉴얼으로 만든 후, 실행 중인 애플리케이션은 업데이트된 시크릿을 받지 않습니다.

애플리케이션 시크릿을 업데이트하려면 다음 중 하나를 수행하십시오:

  • 쿠버네티스 배포를 다시 생성하도록 GitLab에 코드 업데이트를 푸시합니다.
  • 업데이트된 시크릿으로 새로운 파드를 만들도록 실행 중인 파드를 매뉴얼으로 삭제합니다.

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

레플리카 변수 구성

배포를 확장하려면 레플리카 변수를 추가하십시오:

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

    caution
    쿠버네티스를 직접 사용하여 애플리케이션의 규모를 조정하지 마십시오. Helm이 변경 사항을 감지하지 못할 수 있으며, Auto DevOps로 이후 배포가 변경 사항을 취소할 수 있습니다.

사용자 정의 레플리카 변수

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

  • <TRACK>은 Helm 차트 애플리케이션 정의에서 설정된 track의 대문자 값입니다. (Kubernetes 라벨 참조). track이 설정되지 않았다면, 사용자 정의 변수에서 <TRACK>을 제외합니다.
  • <ENV>.gitlab-ci.yml에 설정된 배포 작업의 대문자 환경 이름입니다.

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

QA testing:
  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

프로덕션으로 애플리케이션을 계속적으로 배포하기 위해 점진적인 배포를 사용하여 처음에는 몇 개의 pod으로 시작합니다. pod 수를 매뉴얼으로 증가시킬 수 있습니다.

프로젝트 설정에서 매뉴얼 배포를 활성화하거나, INCREMENTAL_ROLLOUT_MODEmanual로 설정하여 수행할 수 있습니다.

INCREMENTAL_ROLLOUT_MODEmanual로 설정하면 GitLab은 네 개의 매뉴얼 작업을 만듭니다:

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

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

rollout 작업을 원하는 순서대로 실행할 수 있습니다. 축소하려면 더 낮은 백분율 작업을 다시 실행하면 됩니다.

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

점진적 배포 구성 예

INCREMENTAL_ROLLOUT_MODESTAGING_ENABLED가 모두 없는 경우:

Staging and rollout disabled

INCREMENTAL_ROLLOUT_MODE가 없고 STAGING_ENABLED를 사용하는 경우:

Staging enabled

INCREMENTAL_ROLLOUT_MODEmanual로 설정하고 STAGING_ENABLED가 없는 경우:

Rollout enabled

INCREMENTAL_ROLLOUT_MODEmanual로 설정하고 STAGING_ENABLED를 사용하는 경우:

Rollout and staging enabled

타임드 점진적 프로덕션 배포

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

프로덕션으로 애플리케이션을 계속적으로 배포하기 위해 타임드 점진적 배포를 사용하여 처음에는 몇 개의 pod으로 시작합니다.

프로젝트 설정에서 타임드 점진적 배포를 활성화하거나, 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분의 지연이 있습니다.