ldc-shared-ci/deploy/kubernetes.yml
2023-03-03 12:31:52 +00:00

92 lines
2.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
needs:
- job: docker-build:review
rules:
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
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
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_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
needs:
- job: docker-build:latest
rules:
- if: $CI_COMMIT_BRANCH == "main" || $CI_COMMIT_BRANCH == "master" || $CI_COMMIT_TAG != null
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" || $CI_COMMIT_TAG != null
environment:
name: production