#!/usr/bin/env bash

# This script is used to deploy multiple AZ node groups.
# Currently o11y only uses one AZ. So temporarily comment all the lines.

set -x
set -euo pipefail

# ROOT=$(cd $(dirname "${BASH_SOURCE[0]}") && pwd)

# remote_config=${CONFIG_PATH}
# local_config=/tmp/base-config.yaml
# aws s3 cp ${remote_config} ${local_config}

# cloud_provider=$(yq '.cloudProvider' "${local_config}")
# region=$(yq '.region' "${local_config}")
# env=$(yq '.env' "${local_config}")
# cluster_name=$(yq '.k8s.name' "${local_config}")
# account_id=$(yq '.aws.controlplaneAccount' "${local_config}")
# zone=$(yq '.jobOptions.o11y.zone' "${local_config}")
# zone_suffix=${zone#$region}
# nodegroup_instance_type=$(yq '.jobOptions.o11y.nodeGroup.instanceType' "${local_config}")
# nodegroup_min_size=$(yq '.jobOptions.o11y.nodeGroup.minSize' "${local_config}")
# nodegroup_max_size=$(yq '.jobOptions.o11y.nodeGroup.maxSize' "${local_config}")
# nodegroup_desired_size=$(yq '.jobOptions.o11y.nodeGroup.desiredSize' "${local_config}")
# echo "cloud_provider: $cloud_provider"
# echo "region: $region"
# echo "env: $env"
# echo "cluster_name: $cluster_name"
# echo "account_id: $account_id"
# echo "zone: $zone"
# echo "zone_suffix: $zone_suffix"
# echo "nodegroup_instance_type: $nodegroup_instance_type"
# echo "nodegroup_min_size: $nodegroup_min_size"
# echo "nodegroup_max_size: $nodegroup_max_size"
# echo "nodegroup_desired_size: $nodegroup_desired_size"

# vpc_id=$(aws eks describe-cluster \
#   --name $cluster_name \
#   --query "cluster.resourcesVpcConfig.vpcId" \
#   --output text)
# echo "vpc_id: $vpc_id"

# subnet_info=$(aws ec2 describe-subnets \
#   --filters "Name=vpc-id,Values=$vpc_id" "Name=availability-zone,Values=$zone" "Name=tag:Name,Values=*Private*" \
#   --query "Subnets[0].{SubnetId:SubnetId, Name:Tags[?Key=='Name'].Value | [0]}" \
#   --output json)
# subnet_id=$(echo $subnet_info | jq -r '.SubnetId')
# subnet_name=$(echo $subnet_info | jq -r '.Name')
# echo "subnet_id: $subnet_id"
# echo "subnet_name: $subnet_name"

# launch_template_name="eksctl-$cluster_name-nodegroup-worker"
# echo "launch_template_name: $launch_template_name"
# outputs=$(aws ec2 describe-launch-templates --launch-template-names $launch_template_name)
# launch_template_id=$(echo $outputs | jq -r '.LaunchTemplates[0].LaunchTemplateId')
# launch_template_version=$(echo $outputs | jq -r '.LaunchTemplates[0].DefaultVersionNumber')
# echo "launch_template_id: $launch_template_id"
# echo "launch_template_version: $launch_template_version"

# aws cloudformation deploy \
#   --region $region \
#   --stack-name "auto-deploy-$cluster_name-nodegroup-data-${zone_suffix}" \
#   --template-file $ROOT/aws/cloudformation/nodegroup-data.yaml \
#   --parameter-overrides \
#     Env=$env \
#     Region=$region \
#     ClusterName=$cluster_name \
#     AccountId=$account_id \
#     SubnetId=$subnet_id \
#     AzSuffix=$zone_suffix \
#     InstanceType=$nodegroup_instance_type \
#     MinSize=$nodegroup_min_size \
#     MaxSize=$nodegroup_max_size \
#     DesiredSize=$nodegroup_desired_size \
#     LaunchTemplateId=$launch_template_id \
#     LaunchTemplateVersion=$launch_template_version

### multi-az nodegroup ###

# subnet_ids=$(aws ec2 describe-subnets \
#   --filters "Name=vpc-id,Values=$vpc_id" "Name=tag:Name,Values=*Private*" \
#   --query "Subnets[*].SubnetId" \
#   --output text)
# subnet_ids_comma=$(echo $subnet_ids | tr " " ",")
# echo "subnet_ids: $subnet_ids"
# echo "subnet_ids_comma: $subnet_ids_comma"

# aws cloudformation deploy \
#   --region $region \
#   --stack-name "auto-deploy-$cluster_name-nodegroup-control" \
#   --template-file aws/cloudformation/nodegroup-control.yaml \
#   --parameter-overrides \
#     Env=$env \
#     Region=$region \
#     ClusterName=$cluster_name \
#     AccountId=$account_id \
#     SubnetIds=$subnet_ids_comma

# for subnet_id in $subnet_ids; do
#   echo "subnet_id: $subnet_id"

#   az=$(aws ec2 describe-subnets \
#     --subnet-ids $subnet_id \
#     --query "Subnets[0].AvailabilityZone" \
#     --output text)
#   az_suffix=${az#$region}
#   echo "az: $az"
#   echo "az_suffix: $az_suffix"

#   aws cloudformation deploy \
#     --region $region \
#     --stack-name "auto-deploy-$cluster_name-nodegroup-data-${az_suffix}" \
#     --template-file aws/cloudformation/nodegroup-data.yaml \
#     --parameter-overrides \
#       Env=$env \
#       Region=$region \
#       ClusterName=$cluster_name \
#       AccountId=$account_id \
#       SubnetId=$subnet_id \
#       AzSuffix=$az_suffix
# done
