mirror of
https://github.com/kemko/nomad.git
synced 2026-01-01 16:05:42 +03:00
interpolate maps in dynamic blocks (#9921)
Update hcl2 for patch to fix map interpolation in dynamic blocks
This commit is contained in:
@@ -280,18 +280,39 @@ func TestParseDynamic(t *testing.T) {
|
||||
hcl := `
|
||||
job "example" {
|
||||
|
||||
dynamic "group" {
|
||||
for_each = ["groupA", "groupB", "groupC"]
|
||||
labels = [group.value]
|
||||
dynamic "group" {
|
||||
for_each = [
|
||||
{ name = "groupA", idx = 1 },
|
||||
{ name = "groupB", idx = 2 },
|
||||
{ name = "groupC", idx = 3 },
|
||||
]
|
||||
labels = [group.value.name]
|
||||
|
||||
content {
|
||||
task "simple" {
|
||||
driver = "raw_exec"
|
||||
content {
|
||||
count = group.value.idx
|
||||
|
||||
service {
|
||||
port = group.value.name
|
||||
}
|
||||
|
||||
task "simple" {
|
||||
driver = "raw_exec"
|
||||
config {
|
||||
command = group.value.name
|
||||
}
|
||||
meta {
|
||||
VERSION = group.value.idx
|
||||
}
|
||||
env {
|
||||
ID = format("id:%s", group.value.idx)
|
||||
}
|
||||
resources {
|
||||
cpu = group.value.idx
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
`
|
||||
out, err := ParseWithConfig(&ParseConfig{
|
||||
Path: "input.hcl",
|
||||
@@ -305,6 +326,15 @@ dynamic "group" {
|
||||
require.Equal(t, "groupA", *out.TaskGroups[0].Name)
|
||||
require.Equal(t, "groupB", *out.TaskGroups[1].Name)
|
||||
require.Equal(t, "groupC", *out.TaskGroups[2].Name)
|
||||
require.Equal(t, 1, *out.TaskGroups[0].Tasks[0].Resources.CPU)
|
||||
require.Equal(t, "groupA", out.TaskGroups[0].Services[0].PortLabel)
|
||||
|
||||
// interpolation inside maps
|
||||
require.Equal(t, "groupA", out.TaskGroups[0].Tasks[0].Config["command"])
|
||||
require.Equal(t, "1", out.TaskGroups[0].Tasks[0].Meta["VERSION"])
|
||||
require.Equal(t, "id:1", out.TaskGroups[0].Tasks[0].Env["ID"])
|
||||
require.Equal(t, "id:2", out.TaskGroups[1].Tasks[0].Env["ID"])
|
||||
require.Equal(t, "3", out.TaskGroups[2].Tasks[0].Meta["VERSION"])
|
||||
}
|
||||
|
||||
func TestParse_InvalidScalingSyntax(t *testing.T) {
|
||||
|
||||
Reference in New Issue
Block a user