I am trying to create a terraform code to run shell script and that output i like parse into variable on runtime to Parse in locals.
But locals unable to get shell script value, as it is executed first
locals {
instance_config = jsondecode("${null_resource.execute_shell_script.result}")
}
resource "null_resource" "execute_shell_script" {
provisioner "local-exec" {
command = "bash ${path.module}/shell_3.sh"
interpreter = ["bash", "-c"]
}
}
#!/bin/bash
echo "instance_config = {"
cluster="cluster1 cluster2"
cluster1_con="con1 con2 con3"
cluster2_con="con4 con5 con6"
for i in $cluster; do
echo " "$i" = ["
con_var="${i}_con"
con_values="${!con_var}"
for node in $con_values; do
echo " "$node","
done
echo " ]"
done
echo "}"