#!/bin/bash
set -euo pipefail
# When changing this script, remember to modify the corresponding github action
vendor=${1}
env=${2}
region=${3}
logical_region=${4}
cluster=${5}
json_file_path=${6}
args=$(jq -r '.' "${json_file_path}")
echo "args: ${args}"

if [[ ${vendor} == "gcp" ]]; then
  echo "skip cert-manager deloyment for gcp"
  exit 0
fi

ROOT=$(cd $(dirname ${BASH_SOURCE[0]}) && pwd)
deploy_dir="${ROOT}/envs/${env}"
deploy_file="${deploy_dir}/regional-${vendor}-${logical_region}.yaml"
variant_dir="${ROOT}/variants"
mkdir -p ${deploy_dir}

case "${vendor}" in
  aws)
    variant_file="${variant_dir}/values-aws-tmpl.yaml"
    ;;
  azure)
    variant_file="${variant_dir}/values-azure-tmpl.yaml"
    ;;
  alicloud)
    variant_file="${variant_dir}/values-alicloud-tmpl.yaml"
    ;;
  *)
    echo "unsupported cert-manager vendor: ${vendor}"
    exit 1
    ;;
esac

if [[ ! -f "${variant_file}" ]]; then
  echo "cert-manager variant template not found: ${variant_file}"
  exit 1
fi

image_registry=$(echo ${args} | jq -r '.imageRegistry')

if [ -e ${deploy_file} ]; then
  echo "New region deploy file already exist, skip it"
else
  echo "Prepare manifest files"
  cp "${variant_file}" "${deploy_file}"
  sed -i "s|TMPL_IMAGE_REGISTRY|${image_registry}|g" ${deploy_file}
fi
