107 lines
3 KiB
YAML
107 lines
3 KiB
YAML
.kubernetes:
|
|
stage: deploy
|
|
image:
|
|
name: alpine/k8s:1.26.0
|
|
entrypoint: ['']
|
|
variables:
|
|
KUBE_CONTEXT: ldc-web/cluster-k8s:k8s-ldc-web
|
|
KUBE_NAMESPACE: default
|
|
before_script:
|
|
- kubectl config use-context ${KUBE_CONTEXT}
|
|
script:
|
|
- envsubst < manifest.yaml | kubectl apply --namespace ${KUBE_NAMESPACE} -f -
|
|
|
|
.kubernetes_stop:
|
|
extends: .kubernetes
|
|
script:
|
|
- envsubst < manifest.yaml | kubectl delete --namespace ${KUBE_NAMESPACE} -f -
|
|
when: manual
|
|
environment:
|
|
action: stop
|
|
|
|
kubernetes:review:
|
|
extends: .kubernetes
|
|
variables:
|
|
KUBE_NAMESPACE: review
|
|
IMAGE_TAG: "${CI_REGISTRY_IMAGE}:review-${CI_MERGE_REQUEST_IID}"
|
|
needs:
|
|
- job: docker-build:review
|
|
rules:
|
|
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
|
|
when: manual
|
|
environment:
|
|
name: review/${CI_MERGE_REQUEST_IID}
|
|
url: https://${DOMAIN}
|
|
on_stop: kubernetes_stop:review
|
|
|
|
kubernetes_upgrade:review:
|
|
extends: kubernetes:review
|
|
script:
|
|
- envsubst < manifest.yaml | kubectl set image --namespace ${KUBE_NAMESPACE} -f - ${CI_REGISTRY_IMAGE}=${IMAGE_TAG}
|
|
|
|
kubernetes_stop:review:
|
|
extends: .kubernetes_stop
|
|
variables:
|
|
KUBE_NAMESPACE: review
|
|
rules:
|
|
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
|
|
environment:
|
|
name: review/${CI_MERGE_REQUEST_IID}
|
|
|
|
kubernetes:staging:
|
|
extends: .kubernetes
|
|
variables:
|
|
KUBE_NAMESPACE: staging
|
|
IMAGE_TAG: "${CI_REGISTRY_IMAGE}:s-${CI_COMMIT_SHA}"
|
|
needs:
|
|
- job: docker-build:staging
|
|
rules:
|
|
- if: $CI_COMMIT_BRANCH == "trunk"
|
|
when: manual
|
|
environment:
|
|
name: staging
|
|
url: https://${DOMAIN}
|
|
on_stop: kubernetes_stop:staging
|
|
|
|
kubernetes_upgrade:staging:
|
|
extends: kubernetes:staging
|
|
script:
|
|
- envsubst < manifest.yaml | kubectl set image --namespace ${KUBE_NAMESPACE} -f - ${CI_REGISTRY_IMAGE}=${IMAGE_TAG}
|
|
|
|
kubernetes_stop:staging:
|
|
extends: .kubernetes_stop
|
|
variables:
|
|
KUBE_NAMESPACE: staging
|
|
rules:
|
|
- if: $CI_COMMIT_BRANCH == "trunk"
|
|
environment:
|
|
name: staging
|
|
|
|
kubernetes:prod:
|
|
extends: .kubernetes
|
|
variables:
|
|
KUBE_NAMESPACE: production
|
|
IMAGE_TAG: "${CI_REGISTRY_IMAGE}:p-${CI_COMMIT_SHA}"
|
|
needs:
|
|
- job: docker-build:latest
|
|
rules:
|
|
- if: $CI_COMMIT_BRANCH == "main" || $CI_COMMIT_BRANCH == "master"
|
|
when: manual
|
|
environment:
|
|
name: production
|
|
url: https://${DOMAIN}
|
|
#on_stop: kubernetes_stop:production
|
|
|
|
#kubernetes_stop:production:
|
|
# extends: .kubernetes_stop
|
|
# variables:
|
|
# KUBE_NAMESPACE: production
|
|
# rules:
|
|
# - if: $CI_COMMIT_BRANCH == "main" || $CI_COMMIT_BRANCH == "master"
|
|
# environment:
|
|
# name: production
|
|
|
|
kubernetes_upgrade:prod:
|
|
extends: kubernetes:prod
|
|
script:
|
|
- envsubst < manifest.yaml | kubectl set image --namespace ${KUBE_NAMESPACE} -f - ${CI_REGISTRY_IMAGE}=${IMAGE_TAG}
|