I am trying to build a module that would have to create a file with different values based on a conditional which once generated, would be used in another module.
An example is as follows:
If myVar = x then use set 'a' of variables, else if myVar = y, use set 'b' of variables otherwise if myVar = z, use set 'c' of variables.
I have tried to do something like below, but no luck.
data "ignition_file" "instance" {
path = "/instance.env"
count = "${var.myVar}"
content {
content = "${data.template_file.instance.rendered}"
}
}
Also, I have tried using:
count = "${var.myVar == "a" ? 1 : 0}"
but no luck either.
I cam across this https://blog.gruntwork.io/terraform-tips-tricks-loops-if-statements-and-gotchas-f739bbae55f9 where an example is as follows:
data "template_file" "user_data_shell" {
count = "${var.use_shell_script_user_data}"
template = <<-EOF
#!/bin/bash
run-microservice.sh
EOF
}
data "template_file" "user_data_cloud" {
count = "${1 - var.use_shell_script_user_data}"
template = <<-EOF
#cloud-config
runcmd:
- run-microservice.sh
EOF
}
However, this will result in in having 3 outputs which will make it difficult for me to pass it to the other module.
Is there a way of using Terraform 0.11 in achieving this?