I have a map which contains a list of maps object (idea from stackoverflow). The OP used this in main.tf, so file() works just fine.
ssh_keys_user = {
write_files = [
{
path = "/home/ecarroll/.ssh/id_rsa"
content = file("./ssh/user/cp-terraform-user-id_rsa")
owner = "ecarroll:ecarroll"
permissions = "0600"
defer = true
},
{
path = "/home/ecarroll/.ssh/id_rsa.pub"
content = file("./ssh/user/cp-terraform-user-id_rsa.pub")
owner = "ecarroll:ecarroll"
permissions = "0644"
defer = true
},
{
path = "/home/ecarroll/.ssh/id_ecdsa"
content = file("./ssh/user/cp-terraform-user-id_ecdsa")
owner = "ecarroll:ecarroll"
permissions = "0600"
defer = true
},
{
path = "/home/ecarroll/.ssh/id_ecdsa.pub"
content = file("./ssh/user/cp-terraform-user-id_ecdsa.pub")
owner = "ecarroll:ecarroll"
permissions = "0644"
defer = true
}
]
}
But I want to define this in terraform.tfvars, but function is not allowed there, so it has to be something like:
ssh_keys_user = {
write_files = [
{
path = "/home/ecarroll/.ssh/id_rsa"
content = "./ssh/user/cp-terraform-user-id_rsa"
owner = "ecarroll:ecarroll"
permissions = "0600"
defer = true
},
{
path = "/home/ecarroll/.ssh/id_rsa.pub"
content = "./ssh/user/cp-terraform-user-id_rsa.pub"
owner = "ecarroll:ecarroll"
permissions = "0644"
defer = true
},
{
path = "/home/ecarroll/.ssh/id_ecdsa"
content = "./ssh/user/cp-terraform-user-id_ecdsa"
owner = "ecarroll:ecarroll"
permissions = "0600"
defer = true
},
{
path = "/home/ecarroll/.ssh/id_ecdsa.pub"
content = "./ssh/user/cp-terraform-user-id_ecdsa.pub"
owner = "ecarroll:ecarroll"
permissions = "0644"
defer = true
}
]
}
I am looking for a way to apply file() to “content” key pair in the main.tf.
Thanks in advance
Cheers
D