Loading k8s/generic.yaml +30 −25 Original line number Diff line number Diff line Loading @@ -2,31 +2,25 @@ variables: K8S_CONFIG_DIR: ${CI_JOB_NAME} .kube-context: .kube: image: registry.gitlab.com/gitlab-org/cluster-integration/cluster-applications:latest stage: deploy environment: name: production action: prepare .kube-context: extends: .kube stage: deploy script: - gl-use-kube-context - chmod 400 ${KUBECONFIG} needs: [] .kubectl: artifacts: paths: - ${K8S_CONFIG_DIR}/ when: always .kubectl:envsubst: extends: .kubectl kubectl:envsubst: extends: .kube stage: build script: - apk add gettext - | echo "[*] Checking for configuration in ${K8S_CONFIG_DIR}..." if test -d ${K8S_CONFIG_DIR}/envsubst; then echo "[*] Processing envsubst folder..." apk add gettext for FILE in $(ls ${K8S_CONFIG_DIR}/envsubst/); do if [ "${FILE}" = "values.yaml" ]; then envsubst < ${K8S_CONFIG_DIR}/envsubst/${FILE} > ${K8S_CONFIG_DIR}/values.yaml Loading @@ -35,23 +29,34 @@ variables: envsubst < ${K8S_CONFIG_DIR}/envsubst/${FILE} > ${K8S_CONFIG_DIR}/apply/${FILE} fi done fi artifacts: paths: - ${K8S_CONFIG_DIR}/ rules: - exists: - ${K8S_CONFIG_DIR}/envsubst .kubectl:apply: extends: .kubectl kubectl:apply: extends: .kube-context script: - !reference [.kube-context, script] - | if test -f ${K8S_CONFIG_DIR}/apply/namespace.yaml; then echo "[*] Ensuring namespace availability..." kubectl apply --wait -f ${K8S_CONFIG_DIR}/apply/namespace.yaml fi - | if test -d ${K8S_CONFIG_DIR}/apply; then echo "[*] Running apply folder..." kubectl apply --wait --recursive -f ${K8S_CONFIG_DIR}/apply fi - | if test -d ${K8S_CONFIG_DIR}/create; then echo "[*] Running create folder..." kubectl create --recursive -f ${K8S_CONFIG_DIR}/create fi rules: - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH exists: - ${K8S_CONFIG_DIR}/apply - ${K8S_CONFIG_DIR}/create k8s/helm/deploy.yaml +19 −28 Original line number Diff line number Diff line Loading @@ -2,34 +2,31 @@ include: - local: k8s/generic.yaml .helm: variables: DEFAULT_ARGS: HELM_DEPLOY_DEFAULT_ARGS: --install --create-namespace --dependency-update --atomic --wait-for-jobs --render-subchart-notes EXTRA_ARGS: "" HELM_DEPLOY_EXTRA_ARGS: "" .helm: script: - !reference [.kubectl, script] - !reference [".kubectl:envsubst", script] - | if test -f "${K8S_CONFIG_DIR}/values.yaml"; then echo "[+] Including '${K8S_CONFIG_DIR}/values.yaml'." EXTRA_ARGS="${EXTRA_ARGS} -f ${K8S_CONFIG_DIR}/values.yaml" HELM_DEPLOY_EXTRA_ARGS="${HELM_DEPLOY_EXTRA_ARGS} -f ${K8S_CONFIG_DIR}/values.yaml" fi - | echo "[*] Will helm with the following variables: REPO_NAME=${REPO_NAME} REPO_URL=${REPO_URL} CHART=${CHART} RELEASE=${RELEASE} K8S_CONFIG_DIR=${K8S_CONFIG_DIR} DEFAULT_ARGS=${DEFAULT_ARGS} EXTRA_ARGS=${EXTRA_ARGS} NAMESPACE=${NAMESPACE:=default}" Helm repo name: ${REPO_NAME} Helm repo URL: ${REPO_URL} Chart: ${CHART} Release: ${RELEASE} Config dir: ${K8S_CONFIG_DIR} Arguments: ${HELM_DEPLOY_DEFAULT_ARGS} ${HELM_DEPLOY_EXTRA_ARGS} Namespace: ${NAMESPACE:=default} - helm repo add ${REPO_NAME} ${REPO_URL} .helm:render: extends: .helm helm:render: stage: test script: - !reference [.helm, script] - helm template ${REPO_NAME} ${CHART} ${VALUES_ARG} --namespace Loading @@ -39,17 +36,11 @@ include: - rendered when: always .helm:deploy: extends: - .helm - .kube-context helm:deploy: extends: .kube-context script: - !reference [.kube-context, script] - !reference [.helm, script] - helm upgrade ${DEFAULT_ARGS} --namespace ${NAMESPACE:=default} ${RELEASE} ${CHART} ${VALUES_ARG} ${EXTRA_ARGS} artifacts: paths: - rendered when: always - helm upgrade ${HELM_DEPLOY_DEFAULT_ARGS} --namespace ${NAMESPACE:=default} ${RELEASE} ${CHART} ${VALUES_ARG} ${HELM_DEPLOY_EXTRA_ARGS} rules: - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH Loading
k8s/generic.yaml +30 −25 Original line number Diff line number Diff line Loading @@ -2,31 +2,25 @@ variables: K8S_CONFIG_DIR: ${CI_JOB_NAME} .kube-context: .kube: image: registry.gitlab.com/gitlab-org/cluster-integration/cluster-applications:latest stage: deploy environment: name: production action: prepare .kube-context: extends: .kube stage: deploy script: - gl-use-kube-context - chmod 400 ${KUBECONFIG} needs: [] .kubectl: artifacts: paths: - ${K8S_CONFIG_DIR}/ when: always .kubectl:envsubst: extends: .kubectl kubectl:envsubst: extends: .kube stage: build script: - apk add gettext - | echo "[*] Checking for configuration in ${K8S_CONFIG_DIR}..." if test -d ${K8S_CONFIG_DIR}/envsubst; then echo "[*] Processing envsubst folder..." apk add gettext for FILE in $(ls ${K8S_CONFIG_DIR}/envsubst/); do if [ "${FILE}" = "values.yaml" ]; then envsubst < ${K8S_CONFIG_DIR}/envsubst/${FILE} > ${K8S_CONFIG_DIR}/values.yaml Loading @@ -35,23 +29,34 @@ variables: envsubst < ${K8S_CONFIG_DIR}/envsubst/${FILE} > ${K8S_CONFIG_DIR}/apply/${FILE} fi done fi artifacts: paths: - ${K8S_CONFIG_DIR}/ rules: - exists: - ${K8S_CONFIG_DIR}/envsubst .kubectl:apply: extends: .kubectl kubectl:apply: extends: .kube-context script: - !reference [.kube-context, script] - | if test -f ${K8S_CONFIG_DIR}/apply/namespace.yaml; then echo "[*] Ensuring namespace availability..." kubectl apply --wait -f ${K8S_CONFIG_DIR}/apply/namespace.yaml fi - | if test -d ${K8S_CONFIG_DIR}/apply; then echo "[*] Running apply folder..." kubectl apply --wait --recursive -f ${K8S_CONFIG_DIR}/apply fi - | if test -d ${K8S_CONFIG_DIR}/create; then echo "[*] Running create folder..." kubectl create --recursive -f ${K8S_CONFIG_DIR}/create fi rules: - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH exists: - ${K8S_CONFIG_DIR}/apply - ${K8S_CONFIG_DIR}/create
k8s/helm/deploy.yaml +19 −28 Original line number Diff line number Diff line Loading @@ -2,34 +2,31 @@ include: - local: k8s/generic.yaml .helm: variables: DEFAULT_ARGS: HELM_DEPLOY_DEFAULT_ARGS: --install --create-namespace --dependency-update --atomic --wait-for-jobs --render-subchart-notes EXTRA_ARGS: "" HELM_DEPLOY_EXTRA_ARGS: "" .helm: script: - !reference [.kubectl, script] - !reference [".kubectl:envsubst", script] - | if test -f "${K8S_CONFIG_DIR}/values.yaml"; then echo "[+] Including '${K8S_CONFIG_DIR}/values.yaml'." EXTRA_ARGS="${EXTRA_ARGS} -f ${K8S_CONFIG_DIR}/values.yaml" HELM_DEPLOY_EXTRA_ARGS="${HELM_DEPLOY_EXTRA_ARGS} -f ${K8S_CONFIG_DIR}/values.yaml" fi - | echo "[*] Will helm with the following variables: REPO_NAME=${REPO_NAME} REPO_URL=${REPO_URL} CHART=${CHART} RELEASE=${RELEASE} K8S_CONFIG_DIR=${K8S_CONFIG_DIR} DEFAULT_ARGS=${DEFAULT_ARGS} EXTRA_ARGS=${EXTRA_ARGS} NAMESPACE=${NAMESPACE:=default}" Helm repo name: ${REPO_NAME} Helm repo URL: ${REPO_URL} Chart: ${CHART} Release: ${RELEASE} Config dir: ${K8S_CONFIG_DIR} Arguments: ${HELM_DEPLOY_DEFAULT_ARGS} ${HELM_DEPLOY_EXTRA_ARGS} Namespace: ${NAMESPACE:=default} - helm repo add ${REPO_NAME} ${REPO_URL} .helm:render: extends: .helm helm:render: stage: test script: - !reference [.helm, script] - helm template ${REPO_NAME} ${CHART} ${VALUES_ARG} --namespace Loading @@ -39,17 +36,11 @@ include: - rendered when: always .helm:deploy: extends: - .helm - .kube-context helm:deploy: extends: .kube-context script: - !reference [.kube-context, script] - !reference [.helm, script] - helm upgrade ${DEFAULT_ARGS} --namespace ${NAMESPACE:=default} ${RELEASE} ${CHART} ${VALUES_ARG} ${EXTRA_ARGS} artifacts: paths: - rendered when: always - helm upgrade ${HELM_DEPLOY_DEFAULT_ARGS} --namespace ${NAMESPACE:=default} ${RELEASE} ${CHART} ${VALUES_ARG} ${HELM_DEPLOY_EXTRA_ARGS} rules: - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH