Merge pull request #2877 from kmalec/add-group-name-env

Pass task group name as NOMAD_GROUP_NAME environment variable
This commit is contained in:
Michael Schurter 2017-07-20 16:51:10 -07:00 committed by GitHub
commit b5881eef0f
5 changed files with 19 additions and 5 deletions

View file

@ -209,6 +209,7 @@ func setupTaskEnv(t *testing.T, driver string) (*allocdir.TaskDir, map[string]st
"NOMAD_ALLOC_INDEX": "0", "NOMAD_ALLOC_INDEX": "0",
"NOMAD_ALLOC_NAME": alloc.Name, "NOMAD_ALLOC_NAME": alloc.Name,
"NOMAD_TASK_NAME": task.Name, "NOMAD_TASK_NAME": task.Name,
"NOMAD_GROUP_NAME": alloc.TaskGroup,
"NOMAD_JOB_NAME": alloc.Job.Name, "NOMAD_JOB_NAME": alloc.Job.Name,
"NOMAD_DC": "dc1", "NOMAD_DC": "dc1",
"NOMAD_REGION": "global", "NOMAD_REGION": "global",

View file

@ -44,6 +44,9 @@ const (
// TaskName is the environment variable for passing the task name. // TaskName is the environment variable for passing the task name.
TaskName = "NOMAD_TASK_NAME" TaskName = "NOMAD_TASK_NAME"
// GroupName is the environment variable for passing the task group name.
GroupName = "NOMAD_GROUP_NAME"
// JobName is the environment variable for passing the job name. // JobName is the environment variable for passing the job name.
JobName = "NOMAD_JOB_NAME" JobName = "NOMAD_JOB_NAME"
@ -208,6 +211,7 @@ type Builder struct {
region string region string
allocId string allocId string
allocName string allocName string
groupName string
vaultToken string vaultToken string
injectVaultToken bool injectVaultToken bool
jobName string jobName string
@ -277,6 +281,9 @@ func (b *Builder) Build() *TaskEnv {
if b.allocName != "" { if b.allocName != "" {
envMap[AllocName] = b.allocName envMap[AllocName] = b.allocName
} }
if b.groupName != "" {
envMap[GroupName] = b.groupName
}
if b.allocIndex != -1 { if b.allocIndex != -1 {
envMap[AllocIndex] = strconv.Itoa(b.allocIndex) envMap[AllocIndex] = strconv.Itoa(b.allocIndex)
} }
@ -380,6 +387,7 @@ func (b *Builder) setTask(task *structs.Task) *Builder {
func (b *Builder) setAlloc(alloc *structs.Allocation) *Builder { func (b *Builder) setAlloc(alloc *structs.Allocation) *Builder {
b.allocId = alloc.ID b.allocId = alloc.ID
b.allocName = alloc.Name b.allocName = alloc.Name
b.groupName = alloc.TaskGroup
b.allocIndex = int(alloc.Index()) b.allocIndex = int(alloc.Index())
b.jobName = alloc.Job.Name b.jobName = alloc.Job.Name

View file

@ -181,6 +181,7 @@ func TestEnvironment_AsList(t *testing.T) {
"NOMAD_HOST_PORT_http=80", "NOMAD_HOST_PORT_http=80",
"NOMAD_HOST_PORT_https=8080", "NOMAD_HOST_PORT_https=8080",
"NOMAD_TASK_NAME=web", "NOMAD_TASK_NAME=web",
"NOMAD_GROUP_NAME=web",
"NOMAD_ADDR_ssh_other=192.168.0.100:1234", "NOMAD_ADDR_ssh_other=192.168.0.100:1234",
"NOMAD_ADDR_ssh_ssh=192.168.0.100:22", "NOMAD_ADDR_ssh_ssh=192.168.0.100:22",
"NOMAD_IP_ssh_other=192.168.0.100", "NOMAD_IP_ssh_other=192.168.0.100",

View file

@ -51,6 +51,10 @@
<td><tt>NOMAD_TASK_NAME</tt></td> <td><tt>NOMAD_TASK_NAME</tt></td>
<td>Task's name</td> <td>Task's name</td>
</tr> </tr>
<tr>
<td><tt>NOMAD_GROUP_NAME</tt></td>
<td>Group's name</td>
</tr>
<tr> <tr>
<td><tt>NOMAD_JOB_NAME</tt></td> <td><tt>NOMAD_JOB_NAME</tt></td>
<td>Job's name</td> <td>Job's name</td>

View file

@ -23,11 +23,11 @@ environment variable names such as `NOMAD_ADDR_<task>_<label>`.
## Task Identifiers ## Task Identifiers
Nomad will pass both the allocation ID and name as well as the task and job's Nomad will pass both the allocation ID and name as well as the task, group and
names. These are given as `NOMAD_ALLOC_ID`, `NOMAD_ALLOC_NAME`, job's names. These are given as `NOMAD_ALLOC_ID`, `NOMAD_ALLOC_NAME`,
`NOMAD_ALLOC_INDEX`, `NOMAD_JOB_NAME`, and `NOMAD_TASK_NAME`. The allocation ID `NOMAD_ALLOC_INDEX`, `NOMAD_JOB_NAME`, `NOMAD_GROUP_NAME` and `NOMAD_TASK_NAME`.
and index can be useful when the task being run needs a unique identifier or to The allocation ID and index can be useful when the task being run needs a unique
know its instance count. identifier or to know its instance count.
## Resources ## Resources