open-nomad/website/source/docs/job-specification/job.html.md
2016-10-28 10:46:33 -04:00

4 KiB

layout page_title sidebar_current description
docs job Stanza - Job Specification docs-job-specification-job The "job" stanza is the top-most configuration option in the job specification. A job is a declarative specification of tasks that Nomad should run.

job Stanza

The job stanza is the top-most configuration option in the job specification. A job is a declarative specification of tasks that Nomad should run. Jobs have a globally unique name, one or many task groups, which are themselves collections of one or many tasks.

job "docs" {
  all_at_once = true

  constraint {
    # ...
  }

  datacenters = ["us-east-1"]

  group "example" {
    # ...
  }

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

  priority = 100

  region = "north-america"

  task "docs" {
    # ...
  }

  update {
    # ...
  }

  periodic {
    # ...
  }
}

job Parameters

  • all_at_once (bool: false) - Controls if the entire set of tasks in the job must be placed atomically or if they can be scheduled incrementally. This should only be used for special circumstances.

  • constraint (Constraint: nil) - This can be provided multiple times to define additional constraints. See the Nomad constraint reference for more details.

  • datacenters (array<string>: required) - A list of datacenters in the region which are eligible for task placement. This must be provided, and does not have a default.

  • group (Group: required) - Specifies the start of a group of tasks. This can be provided multiple times to define additional groups. Group names must be unique within the job file.

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

  • periodic (Periodic: nil) - Allows the job to be scheduled at fixed times, dates or intervals.

  • priority (int: 50) - Specifies the job priority which is used to prioritize scheduling and access to resources. Must be between 1 and 100 inclusively, with a larger value corresponding to a higher priority.

  • region (string: "global") - The region in which to execute the job.

  • type (string: "service") - Specifies the Nomad scheduler to use. Nomad provides the service, system and batch schedulers.

  • update (Update: nil) - Specifies the task's update strategy. When omitted, rolling updates are disabled.

job Examples

Docker Container

This example job starts a Docker container which runs as a service. Even though the type is not specified as "service", that is the default job type.

job "docs" {
  datacenters = ["default"]

  group "example" {
    task "server" {
      driver = "docker"
      config {
        image = "hashicorp/http-echo"
        args  = ["-text", "hello"]
      }

      resources {
        memory = 128
      }
    }
  }
}

Batch Job

This example job executes the uptime command across all Nomad clients in the fleet, as long as those machines are running Linux.

job "docs" {
  datacenters = ["default"]

  type = "batch"

  constraint {
    attribute = "${attr.kernel.name}"
    value     = "linux"
  }

  group "example" {
    task "uptime" {
      driver = "exec"
      config {
        command = "uptime"
      }

      resources {
        cpu = 10
      }
    }
  }
}