#!/bin/bash if [ "$IMAGE_TAG" == "" ]; then echo "Make sure IMAGE_TAG is set" exit 1 fi IMAGE_NAME=$FORGE_NAME/$CI_REPO CONFIG_FILE=config.json DEPLOYMENT_DIR=$PWD/deployment INSTANCES_DIR=$DEPLOYMENT_DIR/instances pushd $DEPLOYMENT_DIR > /dev/null ./decrypt-secrets.sh || exit 1 . /tmp/secrets rm /tmp/secrets popd > /dev/null for NAMESPACE_DIR in `find $INSTANCES_DIR -type d -mindepth 1 -maxdepth 1`; do NAMESPACE=`basename $NAMESPACE_DIR` echo "Namespace: $NAMESPACE" kubectl create namespace $NAMESPACE \ --dry-run=client \ -o yaml | \ kubectl -f - apply pushd $NAMESPACE_DIR > /dev/null for INSTANCE_DIR in `find . -type d -mindepth 1 -maxdepth 1`; do pushd $INSTANCE_DIR > /dev/null INSTANCE=`basename $INSTANCE_DIR` echo "Instance: $INSTANCE" # set secret configuration from encrypted and decrypted file VARIABLE_PREFIX=`echo "$NAMESPACE""_""$INSTANCE" | tr - _` # set MQTT_PASSWORD as secret MQTT_PASSWORD_VARIABLE=$VARIABLE_PREFIX"_MQTT_PASSWORD" MQTT_PASSWORD="${!MQTT_PASSWORD_VARIABLE}" # echo "MQTT_PASSWORD_VARIABLE: $MQTT_PASSWORD_VARIABLE" # echo "MQTT_PASSWORD: $MQTT_PASSWORD" kubectl create secret generic $INSTANCE-mqtt-password \ --from-literal=MQTT_PASSWORD="$MQTT_PASSWORD" \ --dry-run=client \ -o yaml \ --save-config | \ kubectl apply -f - -n $NAMESPACE LOGIN_VARIABLE=$VARIABLE_PREFIX"_PGUSER" NEW_UDI_DB_LOGIN="${!LOGIN_VARIABLE}" PASSWORD_VARIABLE=$VARIABLE_PREFIX"_PGPASSWORD" NEW_UDI_DB_PASSWORD="${!PASSWORD_VARIABLE}" DATABASE_VARIABLE=$VARIABLE_PREFIX"_PGDATABASE" NEW_UDI_DB_DATABASE="${!DATABASE_VARIABLE}" NEW_UDI_DB_HOST=database.database1.svc.cluster.local kubectl create secret generic $INSTANCE-udi-db-cred \ --dry-run=client \ -o yaml \ --save-config \ --from-literal=PGUSER="$NEW_UDI_DB_LOGIN" \ --from-literal=PGPASSWORD="$NEW_UDI_DB_PASSWORD" \ --from-literal=PGDATABASE="$NEW_UDI_DB_DATABASE" \ --from-literal=PGHOST="$NEW_UDI_DB_HOST" \ --from-literal=PGSSLMODE="require" | \ kubectl apply -f - -n $NAMESPACE # set configuration as configMap kubectl create configmap $INSTANCE-udi-conf \ --from-literal=UDI_CONF="`cat $CONFIG_FILE`" \ --dry-run=client \ -o yaml \ --save-config | \ kubectl apply -f - -n $NAMESPACE # prepare k8s deployment statement cat $DEPLOYMENT_DIR/deploy-yml.tmpl | \ sed -e 's,%IMAGE%,'$IMAGE_NAME':'$IMAGE_TAG','g | \ sed -e 's,%PRE%,'$INSTANCE','g | \ kubectl apply -f - -n $NAMESPACE popd > /dev/null done popd > /dev/null done