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