atst/script/k8s_config
tomdds 9469d1ff1b Introduce TEMPLATE_ID variable for FlexVolume
FlexVolume requires you specify the tenant id of the key vault instance, so this will need to be templated in for future enviroments
2019-12-02 15:45:16 -05:00

47 lines
1.2 KiB
Bash
Executable File

#!/bin/bash
# script/k8s_update: Compiles the Kubernetes configuration for a given
# directory. Expects that the SETTINGS listed are all set as environment
# variables.
set -e
# Expected settings. Script will error if these are not provided.
SETTINGS=(
CONTAINER_IMAGE
PORT_PREFIX
MAIN_DOMAIN
AUTH_DOMAIN
KV_MI_ID
KV_MI_CLIENT_ID
TENANT_ID
)
# Loop all expected settings. Track ones that are missing and build
# concatenated list for envsubst. If any are missing, exit.
MISSING_SETTINGS=()
CONCAT_SETTINGS=""
for envvar in "${SETTINGS[@]}"; do
CONCAT_SETTINGS="${CONCAT_SETTINGS} \$${envvar}"
if [ -z "${!envvar}" ]; then
MISSING_SETTINGS+=(${envvar})
fi
done
if [[ ${#MISSING_SETTINGS[@]} > 0 ]]; then
>&2 echo "The following variables need to be set:"
for missing in "${MISSING_SETTINGS[@]}"; do
>&2 echo $missing
done
exit 1
fi
# Check that a directory is provided as a command line argument.
if [ "$#" -ne 1 ] || ! [ -d $1 ]; then
>&2 echo "You must provide a Kubernetes configuration directory."
exit 1
fi
# Use Kustomize to compile Kubernetes configuration and pipe to envsubst to
# substitute the templated values.
kubectl kustomize $1 | envsubst "'${CONCAT_SETTINGS}'"