Commit c08b2312 authored by Pierre Smeyers's avatar Pierre Smeyers
Browse files

refactor(script): retrieve function params directly from env

parent 9d2b16b3
Loading
Loading
Loading
Loading
+26 −29
Original line number Diff line number Diff line
@@ -344,17 +344,18 @@ stages:
  }

  function setup_kubeconfig() {
    if [[ -f "$1" ]]
    explicit_config=${ENV_KUBE_CONFIG:-${HELM_DEFAULT_KUBE_CONFIG}}
    if [[ -f "$explicit_config" ]]
    then
      # arg1 is a path to a Kuberconfig file
      # is a path to a Kuberconfig file
      export KUBECONFIG="$CI_PROJECT_DIR/.kubeconfig"
      cp -f "$1" "$KUBECONFIG"
      cp -f "$explicit_config" "$KUBECONFIG"
      log_info "--- using \\e[32mKUBECONFIG\\e[0m provided by env variables"
    elif [[ -n "$1" ]]
    elif [[ -n "$explicit_config" ]]
    then
      # arg1 is a Kuberconfig file content
      # is a Kuberconfig file content
      export KUBECONFIG="$CI_PROJECT_DIR/.kubeconfig"
      echo "$1" > "$KUBECONFIG"
      echo "$explicit_config" > "$KUBECONFIG"
      log_info "--- using \\e[32mKUBECONFIG\\e[0m provided by env variables"
    elif [[ -n "$KUBECONFIG" ]]
    then
@@ -429,12 +430,12 @@ stages:
  }

  # deploy application
  function deploy() {
    export environment_type=$1
    export environment_name=$2
    namespace=$3
    values_files=$4
    environment_url=$5
  function helm_deploy() {
    export environment_type=$ENV_TYPE
    export environment_name=${ENV_APP_NAME:-${HELM_BASE_APP_NAME}${ENV_APP_SUFFIX}}
    namespace=${ENV_NAMESPACE:-${KUBE_NAMESPACE}}
    values_files=$ENV_VALUES
    environment_url=${ENV_URL:-${HELM_ENVIRONMENT_URL:-$ENV_URL_LEGACY}}

    # variables expansion in $environment_url
    environment_url=$(echo "$environment_url" | awkenvsubst)
@@ -522,10 +523,10 @@ stages:
  }

  # delete application (and dependencies)
  function delete() {
    export environment_type=$1
    export environment_name=$2
    namespace=$3
  function helm_delete() {
    export environment_type=$ENV_TYPE
    export environment_name=${ENV_APP_NAME:-${HELM_BASE_APP_NAME}${ENV_APP_SUFFIX}}
    namespace=${ENV_NAMESPACE:-${KUBE_NAMESPACE}}

    log_info "--- \\e[32mdelete"
    log_info "--- \$namespace: \\e[33;1m${namespace}\\e[0m"
@@ -567,10 +568,9 @@ stages:
  }

  # test application (and dependencies)
  function test() {
    export environment_type=$1
    export environment_name=$2
    namespace=$3
  # $environment_type and $environment_name are propagated by dotenv artifact
  function helm_test() {
    namespace=${ENV_NAMESPACE:-${KUBE_NAMESPACE}}

    log_info "--- \\e[32mtest\\e[0m (env: ${environment_type})"
    log_info "--- \$namespace: \\e[33;1m${namespace}\\e[0m"
@@ -958,11 +958,10 @@ helm-publish:
  before_script:
    - *helm-scripts
    - install_ca_certs "${CUSTOM_CA_CERTS:-$DEFAULT_CA_CERTS}"
    - assert_defined "${ENV_KUBE_CONFIG:-${HELM_DEFAULT_KUBE_CONFIG:-${KUBECONFIG}}}" 'Missing required env $ENV_KUBE_CONFIG or $HELM_DEFAULT_KUBE_CONFIG'
    - add_helm_repositories
    - setup_kubeconfig "${ENV_KUBE_CONFIG:-${HELM_DEFAULT_KUBE_CONFIG}}"
    - setup_kubeconfig
  script:
    - deploy $ENV_TYPE "${ENV_APP_NAME:-${HELM_BASE_APP_NAME}${ENV_APP_SUFFIX}}" "${ENV_NAMESPACE:-${KUBE_NAMESPACE}}" "$ENV_VALUES" "${ENV_URL:-${HELM_ENVIRONMENT_URL:-$ENV_URL_LEGACY}}"
    - helm_deploy
  artifacts:
    name: "$ENV_TYPE env url for $CI_PROJECT_NAME on $CI_COMMIT_REF_SLUG"
    paths:
@@ -991,10 +990,9 @@ helm-publish:
  before_script:
    - *helm-scripts
    - install_ca_certs "${CUSTOM_CA_CERTS:-$DEFAULT_CA_CERTS}"
    - assert_defined "${ENV_KUBE_CONFIG:-${HELM_DEFAULT_KUBE_CONFIG:-${KUBECONFIG}}}" 'Missing required Kubeconfig'
    - setup_kubeconfig "${ENV_KUBE_CONFIG:-${HELM_DEFAULT_KUBE_CONFIG}}"
    - setup_kubeconfig
  script:
    - delete $ENV_TYPE "${ENV_APP_NAME:-${HELM_BASE_APP_NAME}${ENV_APP_SUFFIX}}" "${ENV_NAMESPACE:-${KUBE_NAMESPACE}}"
    - helm_delete
  environment:
    action: stop
  resource_group: $CI_ENVIRONMENT_NAME
@@ -1011,10 +1009,9 @@ helm-publish:
  before_script:
    - *helm-scripts
    - install_ca_certs "${CUSTOM_CA_CERTS:-$DEFAULT_CA_CERTS}"
    - assert_defined "${ENV_KUBE_CONFIG:-${HELM_DEFAULT_KUBE_CONFIG:-${KUBECONFIG}}}" 'Missing required Kubeconfig'
    - setup_kubeconfig "${ENV_KUBE_CONFIG:-${HELM_DEFAULT_KUBE_CONFIG}}"
    - setup_kubeconfig
  script:
    - test "$environment_type" "$environment_name" "${ENV_NAMESPACE:-${KUBE_NAMESPACE}}"
    - helm_test

# ==================================================
# Stage: review