#!/bin/bash

print_usage() {
    echo "Usage: $0 INSTANCE_ID"
    echo "       INSTANCE_ID is the id of the instance to be generated."
    exit 1
}
if [ "$#" -ne 1 ]; then
    print_usage
fi

INSTANCE_ID=$1
set -x -e

TMPL_DIR=./k8s-config-templates
INSTANCE_DIR=./k8s-instances

CONF_OUT_DIR="./build"
CONF_MAP="gold-${INSTANCE_ID}-ingestion-config"
# DEPLOY_CONF="${CONF_OUT_DIR}/gold-${INSTANCE_ID}.yaml"
DEPLOY_CONF="${CONF_OUT_DIR}/gold-${INSTANCE_ID}"
INGEST_CONF="${CONF_OUT_DIR}/${CONF_MAP}.json5"

TRACE_SERVER_CONF="${DEPLOY_CONF}-traceserver.yaml"
INGESTION_SERVER_CONF="${DEPLOY_CONF}-ingestion.yaml"
CORRECTNESS_CONF="${DEPLOY_CONF}-skiacorrectness.yaml"
BASELINE_SERVER_CONF="${DEPLOY_CONF}-baselineserver.yaml"
DIFF_SERVER_CONF="${DEPLOY_CONF}-diffserver.yaml"

mkdir -p $CONF_OUT_DIR
rm -f $CONF_OUT_DIR/*
rm -f $INGEST_CONF

# Make sure we have the latest and greatest kube-conf-gen
go install ../kube/go/kube-conf-gen

# generate the deployment file for the trace server.
kube-conf-gen -c "${TMPL_DIR}/gold-common.json5" \
              -c "${INSTANCE_DIR}/${INSTANCE_ID}-instance.json5" \
              -extra "INSTANCE_ID:${INSTANCE_ID}" \
              -t "${TMPL_DIR}/gold-traceserver-template.yaml" \
              -parse_conf=false -quote -strict \
              -o "${TRACE_SERVER_CONF}"

# generate the configuration file for ingestion.
kube-conf-gen -c "${TMPL_DIR}/gold-common.json5" \
              -c "${INSTANCE_DIR}/${INSTANCE_ID}-instance.json5" \
              -extra "INSTANCE_ID:${INSTANCE_ID}" \
              -t "${TMPL_DIR}/ingest-config-template.json5" \
              -parse_conf=false -quote -strict \
              -o "${INGEST_CONF}"

# generate the deployment file for ingestion.
kube-conf-gen -c "${TMPL_DIR}/gold-common.json5" \
              -c "${INSTANCE_DIR}/${INSTANCE_ID}-instance.json5" \
              -extra "INSTANCE_ID:${INSTANCE_ID}" \
              -t "${TMPL_DIR}/gold-ingestion-template.yaml" \
              -parse_conf=false -quote -strict \
              -o "${INGESTION_SERVER_CONF}"

# generate the deployment file for skiacorrectness (the main Gold process)
kube-conf-gen -c "${TMPL_DIR}/gold-common.json5" \
              -c "${INSTANCE_DIR}/${INSTANCE_ID}-instance.json5" \
              -extra "INSTANCE_ID:${INSTANCE_ID}" \
              -t "${TMPL_DIR}/gold-skiacorrectness-template.yaml" \
              -parse_conf=false -quote -strict \
              -o "${CORRECTNESS_CONF}"

# generate the deployment file for the baseline server
kube-conf-gen -c "${TMPL_DIR}/gold-common.json5" \
              -c "${INSTANCE_DIR}/${INSTANCE_ID}-instance.json5" \
              -extra "INSTANCE_ID:${INSTANCE_ID}" \
              -t "${TMPL_DIR}/gold-baselineserver-template.yaml" \
              -parse_conf=false -quote -strict \
              -o "${BASELINE_SERVER_CONF}"

kube-conf-gen -c "${TMPL_DIR}/gold-common.json5" \
              -c "${INSTANCE_DIR}/${INSTANCE_ID}-instance.json5" \
              -extra "INSTANCE_ID:${INSTANCE_ID}" \
              -t "${TMPL_DIR}/gold-diffserver-template.yaml" \
              -parse_conf=false -quote -strict \
              -o "${DIFF_SERVER_CONF}"

set +x

# Push the config map to kubernetes
echo "# To push these run:\n"
echo "kubectl delete configmap $CONF_MAP"
echo "kubectl create configmap $CONF_MAP --from-file=$INGEST_CONF"

# Push the trace server and show pods so we can see if it landed correctly.
echo "kubectl apply -f ${TRACE_SERVER_CONF} && kubectl get pods -w -l app=gold-$INSTANCE_ID-traceserver"

# Push the ingestion and show pods so we can see if it landed correctly.
echo "kubectl apply -f ${INGESTION_SERVER_CONF} && kubectl get pods -w -l app=gold-$INSTANCE_ID-ingestion"

# Push the diff server and show pods so we can see if it landed correctly.
echo "kubectl apply -f ${DIFF_SERVER_CONF} && kubectl get pods -w -l app=gold-$INSTANCE_ID-diffserver"

# Push the main server and show pods so we can see if it landed correctly.
echo "kubectl apply -f ${CORRECTNESS_CONF} && kubectl get pods -w -l app=gold-$INSTANCE_ID-skiacorrectness"

# Push the baseline server and show pods so we can see if it landed correctly.
echo "kubectl apply -f ${BASELINE_SERVER_CONF} && kubectl get pods -w -l app=gold-$INSTANCE_ID-baselineserver"

# Push the trace server and show pods so we can see if it landed correctly.
echo "Instance ${INSTANCE_ID} generated."
