#!/bin/bash set -eo pipefail # MUST BE run from the repo root folder # Require the machine to have: OpenSSL and envsubst # # take 2 params: # 1.Tier: e.g npe # 2.Environment name: e.g esm-n # Example: ./deploy/deployEnvironment.sh npe esm-n function cleanup { if [[ -z "${IS_CD}" ]]; then docker stop kustomize-service > /dev/null docker rm kustomize-service > /dev/null fi } trap cleanup EXIT # loop through all the services # deploy all of them if [[ -z "${IS_CD}" ]]; then KUSTOMIZE_IMAGE=867558745853.dkr.ecr.ap-southeast-2.amazonaws.com/platform/csp-kustomize:1.0.5 docker run -it -d -v "$(pwd)":/working -v ~/.aws:/root/.aws -e AWS_PROFILE=${AWS_PROFILE} --name kustomize-service ${KUSTOMIZE_IMAGE} bash > /dev/null alias kustomize='docker exec kustomize-service kustomize' shopt -s expand_aliases fi export TIER=$1 export ENVIRONMENT=$2 export CONFIG_SECRET=$(kustomize build --load_restrictor none tiers/${TIER}/environments/${ENVIRONMENT}/environment --enable_alpha_plugins) export CONFIG_HASH=$(echo $CONFIG_SECRET | openssl sha1 -binary | xxd -p) echo "${CONFIG_SECRET}" if [ ! -z "${ENVIRONMENT}}" ]; then ls -A1 -d tiers/${TIER}/environments/${ENVIRONMENT}/services/* | xargs -n 1 basename | xargs -I % deploy/deployService.sh ${TIER} ${ENVIRONMENT} % | envsubst deploy/deployMeshConfig.sh ${ENVIRONMENT} deploy/deployPrometheus.sh ${TIER} ${ENVIRONMENT} fi