Skip to content

Instantly share code, notes, and snippets.

@seahrh
Created April 6, 2020 04:11
Show Gist options
  • Save seahrh/2c6a6ff47ed8b4825696ff7475cd2b0f to your computer and use it in GitHub Desktop.
Save seahrh/2c6a6ff47ed8b4825696ff7475cd2b0f to your computer and use it in GitHub Desktop.
Helm deploy microservice to gke, use Helm image from google cloud community builders
#!/bin/bash
set -e
set -x #echo on
# entrypoint requires the following variables to be set
case $ENVIRONMENT in
"prod")
export CLOUDSDK_COMPUTE_ZONE="prod"
export CLOUDSDK_CONTAINER_CLUSTER="prod"
export GCLOUD_PROJECT="prod"
;;
"stg")
export CLOUDSDK_COMPUTE_ZONE="asia-southeast1-a"
export CLOUDSDK_CONTAINER_CLUSTER="my_cluster"
export GCLOUD_PROJECT="my_project"
;;
*)
export CLOUDSDK_COMPUTE_ZONE=""
export CLOUDSDK_CONTAINER_CLUSTER=""
export GCLOUD_PROJECT=""
;;
esac
# entrypoint from helm docker image
/builder/helm.bash
# commands after entrypoint
helm version --client
helm repo add repo-name https://example.io/repo-name/
helm repo update
helm repo list
APP_RELEASE="${REPO_NAME}"
APP_CHART=""
APP_CHART_VERSION=""
APP_VALUES="helm-chart/subdir/${ENVIRONMENT}.yaml"
INFRA_RELEASE="${REPO_NAME}-infra"
INFRA_CHART=""
INFRA_CHART_VERSION=""
INFRA_VALUES="helm-chart/subdir/${ENVIRONMENT}.yaml"
SETTING_NAME="app.name=${APP_RELEASE}"
SETTING_IMAGE_NAME="app.baseImageName=${IMAGE_NAME}"
SETTING_IMAGE_TAG="app.imageTag=${IMAGE_TAG}"
SETTING_ENVIRONMENT="app.env=${ENVIRONMENT}"
SETTING_OWNER="app.configmap.data.SERVICE_OWNER=${OWNER}"
env | sort
echo "Dry run..."
helm upgrade "${APP_RELEASE}" "${APP_CHART}" \
--dry-run --debug \
--install \
--tiller-namespace "${NAMESPACE}" \
--namespace "${NAMESPACE}" \
--values "${APP_VALUES}" \
--version "${APP_CHART_VERSION}" \
--set "${SETTING_NAME}" \
--set "${SETTING_IMAGE_NAME}" \
--set "${SETTING_IMAGE_TAG}" \
--set "${SETTING_ENVIRONMENT}" \
--set "${SETTING_OWNER}"
helm upgrade "${INFRA_RELEASE}" "${INFRA_CHART}" \
--dry-run --debug \
--install \
--tiller-namespace "${NAMESPACE}" \
--namespace "${NAMESPACE}" \
--values "${INFRA_VALUES}" \
--version "${INFRA_CHART_VERSION}" \
--set "${SETTING_NAME}" \
--set "${SETTING_ENVIRONMENT}"
echo "Dry run... DONE"
echo "Deploy..."
helm upgrade "${APP_RELEASE}" "${APP_CHART}" \
--install \
--tiller-namespace "${NAMESPACE}" \
--namespace "${NAMESPACE}" \
--values "${APP_VALUES}" \
--version "${APP_CHART_VERSION}" \
--set "${SETTING_NAME}" \
--set "${SETTING_IMAGE_NAME}" \
--set "${SETTING_IMAGE_TAG}" \
--set "${SETTING_ENVIRONMENT}" \
--set "${SETTING_OWNER}"
helm upgrade "${INFRA_RELEASE}" "${INFRA_CHART}" \
--install \
--tiller-namespace "${NAMESPACE}" \
--namespace "${NAMESPACE}" \
--values "${INFRA_VALUES}" \
--version "${INFRA_CHART_VERSION}" \
--set "${SETTING_NAME}" \
--set "${SETTING_ENVIRONMENT}"
echo "Deploy... DONE"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment