#!/usr/bin/env bash
set -xueo pipefail

ROOT=$(cd $(dirname "${BASH_SOURCE[0]}") && pwd)
source "${ROOT}/../lib.sh"

remote_config=${CONFIG_PATH}
local_config=/tmp/base-config.yaml

output_bucket_endpoint=$(get_oss_bucket_endpoint "$remote_config")
aliyun oss cp "${remote_config}" "${local_config}" --endpoint=$output_bucket_endpoint -f

env=$(yq '.env' "${local_config}")
region=$(yq '.region' "${local_config}")
cluster=$(yq '.k8s.name' "${local_config}")
public_ips=$(yq '.k8s.publicIps | join(",")' ${local_config})
controlplane_account=$(yq '.alicloud.controlplaneAccount' "${local_config}")
logical_region_name=$(yq '.name' "${local_config}")
rds_instance_name=$(yq '.jobOptions.ng-service.rds.name' "${local_config}")
resource_owner_tag=$(yq '.jobOptions.resourceOwnerTag' "${local_config}")

tf_directory="${ROOT}/../rds-db-tf"
tf_oss_bucket=$(yq '.terraformStateBucket' "${local_config}")
tf_oss_region=$(get_oss_bucket_region "oss://${tf_oss_bucket}")
tf_common_config="-backend-config=bucket=${tf_oss_bucket} -backend-config=region=${tf_oss_region}"

cd "${tf_directory}"
tf_state_prefix="${env}/rds-db"
tf_state_key="${controlplane_account}-${env}-${logicalRegionName}-tfstate.json"
terraform init $tf_common_config -backend-config="prefix=${tf_state_prefix}" -backend-config="key=${tf_state_key}"
terraform destroy -auto-approve \
  -var="env=${env}" \
  -var="region=${region}" \
  -var="rds_instance_name=${rds_instance_name}" \
  -var="db_user_prefix=${logical_region_name}" \
  -var="db_pass_secret_name_prefix=${logical_region_name}" \
  -var="db_name_prefix=${logical_region_name}" \
  -var="k8s_name=${cluster}" \
  -var="k8s_public_ips=${public_ips}" \
  -var="auto_deploy_owner_tag=${resource_owner_tag}"