atst/script/k8s_config
dandds 46643f7f41 Config for JEDI dev cluster.
- Transition to VMSS identity for flexvol
- Update some environment variables for cloudzero dev
- Overlay for applying migrations
- Updates to disable CDN, which will not be available
- Removes CronJob for resetting the database; don't need that in this
  cluster for now.
2020-02-08 15:06:43 -05:00

48 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
VMSS_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}'"