Skip to content

Instantly share code, notes, and snippets.

@sideshowbandana
Created July 25, 2018 09:55
Show Gist options
  • Save sideshowbandana/abed9519a268f12d2d46274a77b42b48 to your computer and use it in GitHub Desktop.
Save sideshowbandana/abed9519a268f12d2d46274a77b42b48 to your computer and use it in GitHub Desktop.
...
k8s_name (){
echo $1 | sed 's/[\/_]/-/g'
}
if [ "$NAMESPACE" != "default" ]; then
envsubst < ${INFRA_DIR}/namespace.json > ${OUT_DIR}/namespace.json
./kubectl apply -f ${OUT_DIR}/namespace.json
fi
# Secrets
SECRETS=${OUT_DIR}/secret.json
python3 ${INFRA_DIR}/envkubesecret.py $ENV > $SECRETS
./kubectl --namespace=$NAMESPACE apply -f $SECRETS
# Configs
ENV_DIR=${IN_DIR}/.env
CONFIG_DIR=${OUT_DIR}/config
mkdir -p $CONFIG_DIR
mkdir -p $ENV_DIR/$ENV/$NAMESPACE
for IMAGE in $IMAGES
do
CONFIGMAP=$CONFIG_DIR/$IMAGE-config.yml
FILE=$OUT_DIR/$IMAGE-env
FILE=$FILE IMAGE=$IMAGE ENV=$ENV NAMESPACE=$NAMESPACE python3 ${INFRA_DIR}/configmap.py
./kubectl --namespace=$NAMESPACE create configmap $(k8s_name $IMAGE)-config --from-env-file=$FILE --dry-run -o yaml > $CONFIGMAP
./kubectl --namespace=$NAMESPACE apply -f $CONFIGMAP
done
# Update k8s manifests
MANIFEST_IN_DIR=${IN_DIR}/$ENV
MANIFEST_OUT_DIR=${OUT_DIR}/manifests
mkdir -p $MANIFEST_OUT_DIR
for MANIFEST_IN in $(ls ${MANIFEST_IN_DIR}/*.yml)
do
MANIFEST_OUT=${MANIFEST_OUT_DIR}/$(basename $MANIFEST_IN)
envsubst < $MANIFEST_IN > $MANIFEST_OUT
./kubectl --namespace=$NAMESPACE apply -f $MANIFEST_OUT
done
# Wait for the rollout to complete
for IMAGE in $IMAGES
do
./kubectl --namespace=$NAMESPACE rollout status deployment/$(k8s_name $IMAGE)
done
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment