From 885b8f8bd178600c3a44f3f55d871ac469c1ea9e Mon Sep 17 00:00:00 2001 From: mcgin314 Date: Mon, 7 Oct 2024 17:22:47 -0400 Subject: [PATCH] Retrieve load balancer dns --- aws_data.tf | 11 +++++++++++ load_balancer_dns.sh | 15 +++++++++++++++ 2 files changed, 26 insertions(+) create mode 100755 load_balancer_dns.sh diff --git a/aws_data.tf b/aws_data.tf index 050df9e..e735d7b 100644 --- a/aws_data.tf +++ b/aws_data.tf @@ -21,3 +21,14 @@ data "aws_vpc" "dummy_vpc" { values = ["vpc0-dummy"] } } + +# We need to lookup the DNS entry for the istio ingress load balancer created by the tfmod-istio +# We then use this value to create the CNAME record for cluster app/api addressing +data "external" "load_balancer_dns" { + program = ["bash", "${path.module}/load_balancer_dns.sh", format("%v-%v", var.cluster_name, "istio-ingress")] +} + +# format("%v-%v", var.cluster_name, "metrics-server") +output "load_balancer_dns" { + value = data.external.load_balancer_dns.result.dnsName +} \ No newline at end of file diff --git a/load_balancer_dns.sh b/load_balancer_dns.sh new file mode 100755 index 0000000..744a801 --- /dev/null +++ b/load_balancer_dns.sh @@ -0,0 +1,15 @@ +#!/bin/bash +# Script to get Load Balancer DNS Name based on the tag Name + +LB_NAME=$1 + +lb_arn=$(for i in $(aws elbv2 describe-load-balancers --query 'LoadBalancers[].LoadBalancerArn' --output text); \ +do aws elbv2 describe-tags --resource-arns "$i" --query "TagDescriptions[?Tags[?Key=='Name' &&Value=='$LB_NAME']].ResourceArn" --output text ;done) + +if [ -z "$lb_arn" ]; then + lb_arn="no_arn_exists_for_this_lb_name" +fi + +dns_name=$(aws elbv2 describe-load-balancers --load-balancer-arns $lb_arn --query 'LoadBalancers[].DNSName' --output text) + +jq -n --arg dnsName "$dns_name" '{"dnsName":$dnsName}' \ No newline at end of file