debian-mirror-gitlab/lib/gitlab/ci/templates/Jobs/Deploy.latest.gitlab-ci.yml

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

266 lines
7.6 KiB
YAML
Raw Normal View History

2022-04-04 11:22:00 +05:30
variables:
2022-08-27 11:52:29 +05:30
AUTO_DEPLOY_IMAGE_VERSION: 'v2.33.0'
2022-04-04 11:22:00 +05:30
2020-11-24 15:15:51 +05:30
.auto-deploy:
2022-08-27 11:52:29 +05:30
image: "${CI_TEMPLATE_REGISTRY_HOST}/gitlab-org/cluster-integration/auto-deploy-image:${AUTO_DEPLOY_IMAGE_VERSION}"
2020-11-24 15:15:51 +05:30
dependencies: []
review:
extends: .auto-deploy
stage: review
script:
- auto-deploy check_kube_domain
- auto-deploy download_chart
2022-04-04 11:22:00 +05:30
- auto-deploy use_kube_context
2020-11-24 15:15:51 +05:30
- auto-deploy ensure_namespace
- auto-deploy initialize_tiller
- auto-deploy create_secret
- auto-deploy deploy
- auto-deploy persist_environment_url
environment:
name: review/$CI_COMMIT_REF_NAME
url: http://$CI_PROJECT_ID-$CI_ENVIRONMENT_SLUG.$KUBE_INGRESS_BASE_DOMAIN
on_stop: stop_review
artifacts:
paths: [environment_url.txt, tiller.log]
when: always
rules:
2021-12-11 22:18:48 +05:30
- if: '($CI_KUBERNETES_ACTIVE == null || $CI_KUBERNETES_ACTIVE == "") && ($KUBECONFIG == null || $KUBECONFIG == "")'
2020-11-24 15:15:51 +05:30
when: never
2021-04-17 20:07:23 +05:30
- if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH'
2020-11-24 15:15:51 +05:30
when: never
- if: '$REVIEW_DISABLED'
when: never
- if: '$CI_COMMIT_TAG || $CI_COMMIT_BRANCH'
stop_review:
extends: .auto-deploy
stage: cleanup
variables:
GIT_STRATEGY: none
script:
2022-04-04 11:22:00 +05:30
- auto-deploy use_kube_context
2020-11-24 15:15:51 +05:30
- auto-deploy initialize_tiller
- auto-deploy delete
environment:
name: review/$CI_COMMIT_REF_NAME
action: stop
allow_failure: true
rules:
2021-12-11 22:18:48 +05:30
- if: '($CI_KUBERNETES_ACTIVE == null || $CI_KUBERNETES_ACTIVE == "") && ($KUBECONFIG == null || $KUBECONFIG == "")'
2020-11-24 15:15:51 +05:30
when: never
2021-04-17 20:07:23 +05:30
- if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH'
2020-11-24 15:15:51 +05:30
when: never
- if: '$REVIEW_DISABLED'
when: never
- if: '$CI_COMMIT_TAG || $CI_COMMIT_BRANCH'
when: manual
# Staging deploys are disabled by default since
# continuous deployment to production is enabled by default
# If you prefer to automatically deploy to staging and
# only manually promote to production, enable this job by setting
# STAGING_ENABLED.
staging:
extends: .auto-deploy
stage: staging
script:
- auto-deploy check_kube_domain
- auto-deploy download_chart
2022-04-04 11:22:00 +05:30
- auto-deploy use_kube_context
2020-11-24 15:15:51 +05:30
- auto-deploy ensure_namespace
- auto-deploy initialize_tiller
- auto-deploy create_secret
- auto-deploy deploy
environment:
name: staging
url: http://$CI_PROJECT_PATH_SLUG-staging.$KUBE_INGRESS_BASE_DOMAIN
rules:
2021-12-11 22:18:48 +05:30
- if: '($CI_KUBERNETES_ACTIVE == null || $CI_KUBERNETES_ACTIVE == "") && ($KUBECONFIG == null || $KUBECONFIG == "")'
2020-11-24 15:15:51 +05:30
when: never
2021-04-17 20:07:23 +05:30
- if: '$CI_COMMIT_BRANCH != $CI_DEFAULT_BRANCH'
2020-11-24 15:15:51 +05:30
when: never
- if: '$STAGING_ENABLED'
# Canaries are disabled by default, but if you want them,
# and know what the downsides are, you can enable this by setting
# CANARY_ENABLED.
canary:
extends: .auto-deploy
stage: canary
allow_failure: true
script:
- auto-deploy check_kube_domain
- auto-deploy download_chart
2022-04-04 11:22:00 +05:30
- auto-deploy use_kube_context
2020-11-24 15:15:51 +05:30
- auto-deploy ensure_namespace
- auto-deploy initialize_tiller
- auto-deploy create_secret
2021-01-03 14:25:43 +05:30
- auto-deploy deploy canary 50
2020-11-24 15:15:51 +05:30
environment:
name: production
url: http://$CI_PROJECT_PATH_SLUG.$KUBE_INGRESS_BASE_DOMAIN
rules:
2022-04-04 11:22:00 +05:30
- if: '$CI_DEPLOY_FREEZE'
when: never
2021-12-11 22:18:48 +05:30
- if: '($CI_KUBERNETES_ACTIVE == null || $CI_KUBERNETES_ACTIVE == "") && ($KUBECONFIG == null || $KUBECONFIG == "")'
2020-11-24 15:15:51 +05:30
when: never
2021-04-17 20:07:23 +05:30
- if: '$CI_COMMIT_BRANCH != $CI_DEFAULT_BRANCH'
2020-11-24 15:15:51 +05:30
when: never
- if: '$CANARY_ENABLED'
when: manual
.production: &production_template
extends: .auto-deploy
stage: production
script:
- auto-deploy check_kube_domain
- auto-deploy download_chart
2022-04-04 11:22:00 +05:30
- auto-deploy use_kube_context
2020-11-24 15:15:51 +05:30
- auto-deploy ensure_namespace
- auto-deploy initialize_tiller
- auto-deploy create_secret
- auto-deploy deploy
- auto-deploy delete canary
- auto-deploy persist_environment_url
environment:
name: production
url: http://$CI_PROJECT_PATH_SLUG.$KUBE_INGRESS_BASE_DOMAIN
artifacts:
paths: [environment_url.txt, tiller.log]
when: always
production:
<<: *production_template
rules:
2022-04-04 11:22:00 +05:30
- if: '$CI_DEPLOY_FREEZE'
when: never
2021-12-11 22:18:48 +05:30
- if: '($CI_KUBERNETES_ACTIVE == null || $CI_KUBERNETES_ACTIVE == "") && ($KUBECONFIG == null || $KUBECONFIG == "")'
2020-11-24 15:15:51 +05:30
when: never
- if: '$STAGING_ENABLED'
when: never
- if: '$CANARY_ENABLED'
when: never
- if: '$INCREMENTAL_ROLLOUT_ENABLED'
when: never
- if: '$INCREMENTAL_ROLLOUT_MODE'
when: never
2021-04-17 20:07:23 +05:30
- if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH'
2020-11-24 15:15:51 +05:30
production_manual:
<<: *production_template
allow_failure: false
rules:
2022-04-04 11:22:00 +05:30
- if: '$CI_DEPLOY_FREEZE'
when: never
2021-12-11 22:18:48 +05:30
- if: '($CI_KUBERNETES_ACTIVE == null || $CI_KUBERNETES_ACTIVE == "") && ($KUBECONFIG == null || $KUBECONFIG == "")'
2020-11-24 15:15:51 +05:30
when: never
- if: '$INCREMENTAL_ROLLOUT_ENABLED'
when: never
- if: '$INCREMENTAL_ROLLOUT_MODE'
when: never
2021-04-17 20:07:23 +05:30
- if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $STAGING_ENABLED'
2020-11-24 15:15:51 +05:30
when: manual
2021-04-17 20:07:23 +05:30
- if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $CANARY_ENABLED'
2020-11-24 15:15:51 +05:30
when: manual
2021-04-17 20:07:23 +05:30
# This job implements incremental rollout on for every push to the default branch.
2020-11-24 15:15:51 +05:30
.rollout: &rollout_template
extends: .auto-deploy
script:
- auto-deploy check_kube_domain
- auto-deploy download_chart
2022-04-04 11:22:00 +05:30
- auto-deploy use_kube_context
2020-11-24 15:15:51 +05:30
- auto-deploy ensure_namespace
- auto-deploy initialize_tiller
- auto-deploy create_secret
2021-01-03 14:25:43 +05:30
- auto-deploy deploy canary $ROLLOUT_PERCENTAGE
2020-11-24 15:15:51 +05:30
- auto-deploy persist_environment_url
environment:
name: production
url: http://$CI_PROJECT_PATH_SLUG.$KUBE_INGRESS_BASE_DOMAIN
artifacts:
paths: [environment_url.txt, tiller.log]
when: always
.manual_rollout_template: &manual_rollout_template
<<: *rollout_template
stage: production
resource_group: production
allow_failure: true
rules:
2022-04-04 11:22:00 +05:30
- if: '$CI_DEPLOY_FREEZE'
when: never
2021-12-11 22:18:48 +05:30
- if: '($CI_KUBERNETES_ACTIVE == null || $CI_KUBERNETES_ACTIVE == "") && ($KUBECONFIG == null || $KUBECONFIG == "")'
2020-11-24 15:15:51 +05:30
when: never
- if: '$INCREMENTAL_ROLLOUT_MODE == "timed"'
when: never
2021-04-17 20:07:23 +05:30
- if: '$CI_COMMIT_BRANCH != $CI_DEFAULT_BRANCH'
2020-11-24 15:15:51 +05:30
when: never
2021-01-29 00:20:46 +05:30
# $INCREMENTAL_ROLLOUT_ENABLED is for compatibility with pre-GitLab 11.4 syntax
2020-11-24 15:15:51 +05:30
- if: '$INCREMENTAL_ROLLOUT_MODE == "manual" || $INCREMENTAL_ROLLOUT_ENABLED'
when: manual
.timed_rollout_template: &timed_rollout_template
<<: *rollout_template
rules:
2022-04-04 11:22:00 +05:30
- if: '$CI_DEPLOY_FREEZE'
when: never
2021-12-11 22:18:48 +05:30
- if: '($CI_KUBERNETES_ACTIVE == null || $CI_KUBERNETES_ACTIVE == "") && ($KUBECONFIG == null || $KUBECONFIG == "")'
2020-11-24 15:15:51 +05:30
when: never
- if: '$INCREMENTAL_ROLLOUT_MODE == "manual"'
when: never
2021-04-17 20:07:23 +05:30
- if: '$CI_COMMIT_BRANCH != $CI_DEFAULT_BRANCH'
2020-11-24 15:15:51 +05:30
when: never
- if: '$INCREMENTAL_ROLLOUT_MODE == "timed"'
when: delayed
start_in: 5 minutes
timed rollout 10%:
<<: *timed_rollout_template
stage: incremental rollout 10%
variables:
ROLLOUT_PERCENTAGE: 10
timed rollout 25%:
<<: *timed_rollout_template
stage: incremental rollout 25%
variables:
ROLLOUT_PERCENTAGE: 25
timed rollout 50%:
<<: *timed_rollout_template
stage: incremental rollout 50%
variables:
ROLLOUT_PERCENTAGE: 50
timed rollout 100%:
<<: *timed_rollout_template
<<: *production_template
stage: incremental rollout 100%
variables:
ROLLOUT_PERCENTAGE: 100
rollout 10%:
<<: *manual_rollout_template
variables:
ROLLOUT_PERCENTAGE: 10
rollout 25%:
<<: *manual_rollout_template
variables:
ROLLOUT_PERCENTAGE: 25
rollout 50%:
<<: *manual_rollout_template
variables:
ROLLOUT_PERCENTAGE: 50
rollout 100%:
<<: *manual_rollout_template
<<: *production_template
allow_failure: false