109 lines
3.1 KiB
YAML
109 lines
3.1 KiB
YAML
variables:
|
|
KUBERNETES_CLUSTER_NAME: prod-k8s-ldc-web
|
|
KUBERNETES_VERSION: 1.29.2
|
|
|
|
.kubernetes:
|
|
stage: deploy
|
|
image:
|
|
name: "alpine/k8s:${KUBERNETES_VERSION}"
|
|
entrypoint: ['']
|
|
variables:
|
|
KUBE_CONTEXT: "ldc-web/cluster-k8s:${KUBERNETES_CLUSTER_NAME}"
|
|
KUBE_NAMESPACE: default
|
|
CRT_TLS_NAME: "wildcard-k8s-ldc"
|
|
REDIRECT:
|
|
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_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"
|
|
script:
|
|
- envsubst < manifest.yaml | kubectl apply --namespace ${KUBE_NAMESPACE} -f -
|
|
- envsubst < staging-resources.yaml | kubectl apply --namespace ${KUBE_NAMESPACE} -f -
|
|
when: manual
|
|
environment:
|
|
name: staging
|
|
url: https://${DOMAIN}
|
|
on_stop: kubernetes_stop:staging
|
|
|
|
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}"
|
|
CRT_TLS_NAME: "${APP_DOMAIN}"
|
|
REDIRECT: "www."
|
|
needs:
|
|
- job: docker-build:latest
|
|
rules:
|
|
- if: $CI_COMMIT_BRANCH == "main" || $CI_COMMIT_BRANCH == "master"
|
|
script:
|
|
- envsubst < manifest.yaml | kubectl apply --namespace ${KUBE_NAMESPACE} -f -
|
|
- envsubst < production-resources.yaml | kubectl apply --namespace ${KUBE_NAMESPACE} -f -
|
|
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
|