open-nomad/website/source/docs/job-specification/group.html.md
2019-01-24 14:58:26 -06:00

4.3 KiB

layout page_title sidebar_current description
docs group Stanza - Job Specification docs-job-specification-group The "group" stanza defines a series of tasks that should be co-located on the same Nomad client. Any task within a group will be placed on the same client.

group Stanza

Placement job -> **group**

The group stanza defines a series of tasks that should be co-located on the same Nomad client. Any task within a group will be placed on the same client.

job "docs" {
  group "example" {
    # ...
  }
}

group Parameters

  • constraint (Constraint: nil) - This can be provided multiple times to define additional constraints.

  • affinity (Affinity: nil) - This can be provided multiple times to define preferred placement criteria.

  • spread (Spread: nil) - This can be provided multiple times to define criteria for spreading allocations across a node attribute or metadata. See the Nomad spread reference for more details.

  • count (int: 1) - Specifies the number of the task groups that should be running under this group. This value must be non-negative.

  • ephemeral_disk (EphemeralDisk: nil) - Specifies the ephemeral disk requirements of the group. Ephemeral disks can be marked as sticky and support live data migrations.

  • meta (Meta: nil) - Specifies a key-value map that annotates with user-defined metadata.

  • migrate (Migrate: nil) - Specifies the group strategy for migrating off of draining nodes. Only service jobs with a count greater than 1 support migrate stanzas.

  • reschedule (Reschedule: nil) - Allows to specify a rescheduling strategy. Nomad will then attempt to schedule the task on another node if any of the group allocation statuses become "failed".

  • restart (Restart: nil) - Specifies the restart policy for all tasks in this group. If omitted, a default policy exists for each job type, which can be found in the restart stanza documentation.

  • task (Task: ) - Specifies one or more tasks to run within this group. This can be specified multiple times, to add a task as part of the group.

  • vault (Vault: nil) - Specifies the set of Vault policies required by all tasks in this group. Overrides a vault block set at the job level.

group Examples

The following examples only show the group stanzas. Remember that the group stanza is only valid in the placements listed above.

Specifying Count

This example specifies that 5 instances of the tasks within this group should be running:

group "example" {
  count = 5
}

Tasks with Constraint

This example shows two abbreviated tasks with a constraint on the group. This will restrict the tasks to 64-bit operating systems.

group "example" {
  constraint {
    attribute = "${attr.cpu.arch}"
    value     = "amd64"
  }

  task "cache" {
    # ...
  }

  task "server" {
    # ...
  }
}

Metadata

This example show arbitrary user-defined metadata on the group:

group "example" {
  meta {
    "my-key" = "my-value"
  }
}