Hi,
We works on golang programm to generate terraform files and I am having difficulty generating a local of type object with a value reference, like this :
locals {
servers = {
"admin@server-1" = {
hostname = "srv1"
login = "admin"
password = data.vault_generic_secret.srv1.data["password"]
port = 22
}
"admin@server-2" = {
hostname = "srv2"
login = "admin"
password = data.vault_generic_secret.srv2.data["password"]
port = 22
}
}
}
An example of code to generate this file :
package main
import (
"fmt"
"github.com/hashicorp/hcl/v2/hclwrite"
"github.com/zclconf/go-cty/cty"
)
func main() {
f := hclwrite.NewEmptyFile()
rootBody := f.Body()
localsBlock := rootBody.AppendNewBlock("locals", nil).Body()
localsBlock.SetAttributeValue("servers",
cty.ObjectVal(map[string]cty.Value{
"admin@server-1": cty.ObjectVal(map[string]cty.Value{
"hostname": cty.StringVal("srv1"),
"login": cty.StringVal("admin"),
"password": <?>,
"port": cty.NumberIntVal(22),
}),
"admin@server-2": cty.ObjectVal(map[string]cty.Value{
"hostname": cty.StringVal("srv2"),
"login": cty.StringVal("admin"),
"password": <?>,
"port": cty.NumberIntVal(22),
}),
}))
fmt.Printf("%s", f.Bytes())
}
but I don’t know what to do for the reference in password
Have you an idea ?
2 posts - 2 participants