Commit 3f82fd98 authored by Ruben ten Hove's avatar Ruben ten Hove
Browse files

simpler

parent 37f5ef99
Loading
Loading
Loading
Loading
+30 −25
Original line number Diff line number Diff line
@@ -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
@@ -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
+19 −28
Original line number Diff line number Diff line
@@ -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
@@ -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