diff --git a/.changelog/14637.txt b/.changelog/14637.txt new file mode 100644 index 000000000..7e01d444d --- /dev/null +++ b/.changelog/14637.txt @@ -0,0 +1,3 @@ +```release-note:bug +jobspec: Fixed a bug where an `artifact` with `headers` configuration would fail to parse when using HCLv1 +``` diff --git a/jobspec/parse_task.go b/jobspec/parse_task.go index a43ffded6..6260e9b67 100644 --- a/jobspec/parse_task.go +++ b/jobspec/parse_task.go @@ -370,6 +370,7 @@ func parseArtifacts(result *[]*api.TaskArtifact, list *ast.ObjectList) error { valid := []string{ "source", "options", + "headers", "mode", "destination", } diff --git a/jobspec/parse_test.go b/jobspec/parse_test.go index 82819e9a0..41b99e359 100644 --- a/jobspec/parse_test.go +++ b/jobspec/parse_test.go @@ -628,6 +628,13 @@ func TestParse(t *testing.T) { GetterOptions: nil, RelativeDest: stringToPtr("var/foo"), }, + { + GetterSource: stringToPtr("https://example.com/file.txt"), + GetterHeaders: map[string]string{ + "User-Agent": "nomad", + "X-Nomad-Alloc": "alloc", + }, + }, }, }, }, diff --git a/jobspec/test-fixtures/artifacts.hcl b/jobspec/test-fixtures/artifacts.hcl index 4631f595b..2da722850 100644 --- a/jobspec/test-fixtures/artifacts.hcl +++ b/jobspec/test-fixtures/artifacts.hcl @@ -20,6 +20,15 @@ job "binstore-storagelocker" { source = "http://foo.com/bam" destination = "var/foo" } + + artifact { + source = "https://example.com/file.txt" + + headers { + User-Agent = "nomad" + X-Nomad-Alloc = "alloc" + } + } } } }