Fórum Root.cz

Hlavní témata => Software => Téma založeno: Mipel 24. 11. 2022, 21:15:04

Název: Terraform output
Přispěvatel: Mipel 24. 11. 2022, 21:15:04
Prosím o radu někoho zkušenejšího s Terraformem.
Mám zadaný output, který mi vypíše celou sekci network:

Kód: [Vybrat]
output "private_ip" {
  value = hcloud_server.nodes[*].network

}

Terraform mi následně vypíše:

Kód: [Vybrat]
Outputs:

private_ip = [
  toset([
    {
      "alias_ips" = toset([])
      "ip" = "10.0.1.3"
      "mac_address" = "86:00:00:2a:f8:79"
      "network_id" = 2239143
    },
  ]),
]

Jak mám zadat aby se mi vypsala pouze ta IP?

Kód: [Vybrat]
private_ip = "10.0.1.3"
Název: Re:Terraform output
Přispěvatel: czipis 24. 11. 2022, 22:06:27
zkus
Kód: [Vybrat]
value = hcloud_server.nodes[*].network["ip"]
Název: Re:Terraform output
Přispěvatel: Mipel 25. 11. 2022, 10:27:31
Kód: [Vybrat]
value = hcloud_server.nodes[*].network["ip"]

Hmm bohužel to neprošlo. A vypadalo to nadějně. Validace prošla, ale při apply mi Terraform vypíše
Kód: [Vybrat]
Error: Invalid index

   on server.tf line 43, in output "private_ip":
   43:   value = hcloud_server.nodes[*].network["ip"]

 Elements of a set are identified only by their value and don't have any separate index or key to select with, so it's only possible to perform operations across all elements of the set.
Název: Re:Terraform output
Přispěvatel: czipis 25. 11. 2022, 10:40:35
ano, protoze iterujete pres vsechno. zkuste misto te hvezdicky dat nulu (jenom prvni record)