Loading templates/gitlab-ci-helmfile.yml +23 −26 Original line number Diff line number Diff line Loading @@ -314,24 +314,25 @@ stages: } function setup_kubeconfig() { if [[ -f "$1" ]] explicit_config=${ENV_KUBE_CONFIG:-${HELMFILE_DEFAULT_KUBE_CONFIG}} if [[ -f "$explicit_config" ]] then # arg1 is a path to a Kubeconfig 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 Kubeconfig 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 log_info "--- using \\e[32mKUBECONFIG\\e[0m provided by GitLab" if [[ -n "$KUBE_CONTEXT" ]] then kubectl config use-context "$KUBE_CONTEXT" export HELM_KUBECONTEXT="${HELM_KUBECONTEXT:-$KUBE_CONTEXT}" log_info "--- switch to the given \\e[32mKUBE_CONTEXT\\e[0m: ${KUBE_CONTEXT}" fi else Loading @@ -356,10 +357,10 @@ stages: # deploy application function helmfile_deploy() { export environment_type=$1 export environment_name=$2 namespace=$3 environment_url=$4 export environment_type=$ENV_TYPE export environment_name=${ENV_APP_NAME:-${HELMFILE_BASE_APP_NAME}${ENV_APP_SUFFIX}} namespace=${ENV_NAMESPACE:-${KUBE_NAMESPACE}} environment_url=${ENV_URL:-${HELMFILE_ENVIRONMENT_URL:-$ENV_URL_LEGACY}} # variables expansion in $environment_url environment_url=$(echo "$environment_url" | awkenvsubst) Loading Loading @@ -438,9 +439,9 @@ stages: # delete application (and dependencies) function helmfile_delete() { export environment_type=$1 export environment_name=$2 namespace=$3 export environment_type=$ENV_TYPE export environment_name=${ENV_APP_NAME:-${HELMFILE_BASE_APP_NAME}${ENV_APP_SUFFIX}} namespace=${ENV_NAMESPACE:-${KUBE_NAMESPACE}} log_info "--- \\e[32mdelete" log_info "--- \$namespace: \\e[33;1m${namespace}\\e[0m" Loading Loading @@ -483,10 +484,9 @@ stages: } # test application (and dependencies) # $environment_type and $environment_name are propagated by dotenv artifact function helmfile_test() { export environment_type=$1 export environment_name=$2 namespace=$3 namespace=${ENV_NAMESPACE:-${KUBE_NAMESPACE}} log_info "--- \\e[32mtest\\e[0m (env: ${environment_type})" log_info "--- \$namespace: \\e[33;1m${namespace}\\e[0m" Loading Loading @@ -592,12 +592,11 @@ helmfile-lint: before_script: - *helmfile-scripts - install_ca_certs "${CUSTOM_CA_CERTS:-$DEFAULT_CA_CERTS}" - assert_defined "${ENV_KUBE_CONFIG:-${HELMFILE_DEFAULT_KUBE_CONFIG:-${KUBECONFIG}}}" 'Missing required env $ENV_KUBE_CONFIG or $HELMFILE_DEFAULT_KUBE_CONFIG' - setup_kubeconfig "${ENV_KUBE_CONFIG:-${HELMFILE_DEFAULT_KUBE_CONFIG}}" - setup_kubeconfig - setup_pgp_key script: - set_default_namespace - helmfile_deploy $ENV_TYPE "${ENV_APP_NAME:-${HELMFILE_BASE_APP_NAME}${ENV_APP_SUFFIX}}" "${ENV_NAMESPACE:-${KUBE_NAMESPACE}}" "${ENV_URL:-${HELMFILE_ENVIRONMENT_URL:-$ENV_URL_LEGACY}}" - helmfile_deploy artifacts: name: "$ENV_TYPE env url for $CI_PROJECT_NAME on $CI_COMMIT_REF_SLUG" paths: Loading Loading @@ -626,12 +625,11 @@ helmfile-lint: before_script: - *helmfile-scripts - install_ca_certs "${CUSTOM_CA_CERTS:-$DEFAULT_CA_CERTS}" - assert_defined "${ENV_KUBE_CONFIG:-${HELMFILE_DEFAULT_KUBE_CONFIG:-${KUBECONFIG}}}" 'Missing required Kubeconfig' - setup_kubeconfig "${ENV_KUBE_CONFIG:-${HELMFILE_DEFAULT_KUBE_CONFIG}}" - setup_kubeconfig - setup_pgp_key script: - set_default_namespace - helmfile_delete $ENV_TYPE "${ENV_APP_NAME:-${HELMFILE_BASE_APP_NAME}${ENV_APP_SUFFIX}}" "${ENV_NAMESPACE:-${KUBE_NAMESPACE}}" - helmfile_delete environment: action: stop resource_group: $CI_ENVIRONMENT_NAME Loading @@ -648,12 +646,11 @@ helmfile-lint: before_script: - *helmfile-scripts - install_ca_certs "${CUSTOM_CA_CERTS:-$DEFAULT_CA_CERTS}" - assert_defined "${ENV_KUBE_CONFIG:-${HELMFILE_DEFAULT_KUBE_CONFIG:-${KUBECONFIG}}}" 'Missing required Kubeconfig' - setup_kubeconfig "${ENV_KUBE_CONFIG:-${HELMFILE_DEFAULT_KUBE_CONFIG}}" - setup_kubeconfig - setup_pgp_key script: - set_default_namespace - helmfile_test "$environment_type" "$environment_name" "${ENV_NAMESPACE:-${KUBE_NAMESPACE}}" - helmfile_test environment: action: verify Loading Loading
templates/gitlab-ci-helmfile.yml +23 −26 Original line number Diff line number Diff line Loading @@ -314,24 +314,25 @@ stages: } function setup_kubeconfig() { if [[ -f "$1" ]] explicit_config=${ENV_KUBE_CONFIG:-${HELMFILE_DEFAULT_KUBE_CONFIG}} if [[ -f "$explicit_config" ]] then # arg1 is a path to a Kubeconfig 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 Kubeconfig 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 log_info "--- using \\e[32mKUBECONFIG\\e[0m provided by GitLab" if [[ -n "$KUBE_CONTEXT" ]] then kubectl config use-context "$KUBE_CONTEXT" export HELM_KUBECONTEXT="${HELM_KUBECONTEXT:-$KUBE_CONTEXT}" log_info "--- switch to the given \\e[32mKUBE_CONTEXT\\e[0m: ${KUBE_CONTEXT}" fi else Loading @@ -356,10 +357,10 @@ stages: # deploy application function helmfile_deploy() { export environment_type=$1 export environment_name=$2 namespace=$3 environment_url=$4 export environment_type=$ENV_TYPE export environment_name=${ENV_APP_NAME:-${HELMFILE_BASE_APP_NAME}${ENV_APP_SUFFIX}} namespace=${ENV_NAMESPACE:-${KUBE_NAMESPACE}} environment_url=${ENV_URL:-${HELMFILE_ENVIRONMENT_URL:-$ENV_URL_LEGACY}} # variables expansion in $environment_url environment_url=$(echo "$environment_url" | awkenvsubst) Loading Loading @@ -438,9 +439,9 @@ stages: # delete application (and dependencies) function helmfile_delete() { export environment_type=$1 export environment_name=$2 namespace=$3 export environment_type=$ENV_TYPE export environment_name=${ENV_APP_NAME:-${HELMFILE_BASE_APP_NAME}${ENV_APP_SUFFIX}} namespace=${ENV_NAMESPACE:-${KUBE_NAMESPACE}} log_info "--- \\e[32mdelete" log_info "--- \$namespace: \\e[33;1m${namespace}\\e[0m" Loading Loading @@ -483,10 +484,9 @@ stages: } # test application (and dependencies) # $environment_type and $environment_name are propagated by dotenv artifact function helmfile_test() { export environment_type=$1 export environment_name=$2 namespace=$3 namespace=${ENV_NAMESPACE:-${KUBE_NAMESPACE}} log_info "--- \\e[32mtest\\e[0m (env: ${environment_type})" log_info "--- \$namespace: \\e[33;1m${namespace}\\e[0m" Loading Loading @@ -592,12 +592,11 @@ helmfile-lint: before_script: - *helmfile-scripts - install_ca_certs "${CUSTOM_CA_CERTS:-$DEFAULT_CA_CERTS}" - assert_defined "${ENV_KUBE_CONFIG:-${HELMFILE_DEFAULT_KUBE_CONFIG:-${KUBECONFIG}}}" 'Missing required env $ENV_KUBE_CONFIG or $HELMFILE_DEFAULT_KUBE_CONFIG' - setup_kubeconfig "${ENV_KUBE_CONFIG:-${HELMFILE_DEFAULT_KUBE_CONFIG}}" - setup_kubeconfig - setup_pgp_key script: - set_default_namespace - helmfile_deploy $ENV_TYPE "${ENV_APP_NAME:-${HELMFILE_BASE_APP_NAME}${ENV_APP_SUFFIX}}" "${ENV_NAMESPACE:-${KUBE_NAMESPACE}}" "${ENV_URL:-${HELMFILE_ENVIRONMENT_URL:-$ENV_URL_LEGACY}}" - helmfile_deploy artifacts: name: "$ENV_TYPE env url for $CI_PROJECT_NAME on $CI_COMMIT_REF_SLUG" paths: Loading Loading @@ -626,12 +625,11 @@ helmfile-lint: before_script: - *helmfile-scripts - install_ca_certs "${CUSTOM_CA_CERTS:-$DEFAULT_CA_CERTS}" - assert_defined "${ENV_KUBE_CONFIG:-${HELMFILE_DEFAULT_KUBE_CONFIG:-${KUBECONFIG}}}" 'Missing required Kubeconfig' - setup_kubeconfig "${ENV_KUBE_CONFIG:-${HELMFILE_DEFAULT_KUBE_CONFIG}}" - setup_kubeconfig - setup_pgp_key script: - set_default_namespace - helmfile_delete $ENV_TYPE "${ENV_APP_NAME:-${HELMFILE_BASE_APP_NAME}${ENV_APP_SUFFIX}}" "${ENV_NAMESPACE:-${KUBE_NAMESPACE}}" - helmfile_delete environment: action: stop resource_group: $CI_ENVIRONMENT_NAME Loading @@ -648,12 +646,11 @@ helmfile-lint: before_script: - *helmfile-scripts - install_ca_certs "${CUSTOM_CA_CERTS:-$DEFAULT_CA_CERTS}" - assert_defined "${ENV_KUBE_CONFIG:-${HELMFILE_DEFAULT_KUBE_CONFIG:-${KUBECONFIG}}}" 'Missing required Kubeconfig' - setup_kubeconfig "${ENV_KUBE_CONFIG:-${HELMFILE_DEFAULT_KUBE_CONFIG}}" - setup_kubeconfig - setup_pgp_key script: - set_default_namespace - helmfile_test "$environment_type" "$environment_name" "${ENV_NAMESPACE:-${KUBE_NAMESPACE}}" - helmfile_test environment: action: verify Loading