Loading templates/gitlab-ci-helm.yml +26 −29 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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) Loading Loading @@ -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" Loading Loading @@ -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" Loading Loading @@ -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: Loading Loading @@ -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 Loading @@ -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 Loading Loading
templates/gitlab-ci-helm.yml +26 −29 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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) Loading Loading @@ -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" Loading Loading @@ -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" Loading Loading @@ -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: Loading Loading @@ -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 Loading @@ -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 Loading