diff --git a/jobspec/parse_task.go b/jobspec/parse_task.go index 71e6af26b..ff81b6ba6 100644 --- a/jobspec/parse_task.go +++ b/jobspec/parse_task.go @@ -551,6 +551,7 @@ func parseResources(result *api.Resources, list *ast.ObjectList) error { "memory_max", "network", "device", + "cores", } if err := checkHCLKeys(listVal, valid); err != nil { return multierror.Prefix(err, "resources ->") diff --git a/jobspec/parse_test.go b/jobspec/parse_test.go index 852a4f669..0f563045c 100644 --- a/jobspec/parse_test.go +++ b/jobspec/parse_test.go @@ -1699,6 +1699,30 @@ func TestParse(t *testing.T) { }, false, }, + { + "resources-cores.hcl", + &api.Job{ + ID: stringToPtr("cores-test"), + Name: stringToPtr("cores-test"), + TaskGroups: []*api.TaskGroup{ + { + Count: intToPtr(5), + Name: stringToPtr("group"), + Tasks: []*api.Task{ + { + Name: "task", + Driver: "docker", + Resources: &api.Resources{ + Cores: intToPtr(4), + MemoryMB: intToPtr(128), + }, + }, + }, + }, + }, + }, + false, + }, } for _, tc := range cases { diff --git a/jobspec/test-fixtures/resources-cores.hcl b/jobspec/test-fixtures/resources-cores.hcl new file mode 100644 index 000000000..f3e11e93e --- /dev/null +++ b/jobspec/test-fixtures/resources-cores.hcl @@ -0,0 +1,14 @@ +job "cores-test" { + group "group" { + count = 5 + + task "task" { + driver = "docker" + + resources { + cores = 4 + memory = 128 + } + } + } +}