Quantcast
Channel: Terraform - HashiCorp Discuss
Viewing all articles
Browse latest Browse all 11429

Hclwrite(v2) a object with a reference value

$
0
0

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

Read full topic


Viewing all articles
Browse latest Browse all 11429

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>