diff --git a/website/source/docs/job-specification/spread.html.md b/website/source/docs/job-specification/spread.html.md new file mode 100644 index 000000000..6337897af --- /dev/null +++ b/website/source/docs/job-specification/spread.html.md @@ -0,0 +1,117 @@ +--- +layout: "docs" +page_title: "spread Stanza - Job Specification" +sidebar_current: "docs-job-specification-spread" +description: |- + The "spread" stanza allows operators to configure desired target percentages for allocations according to node attributes or metadata. + Spread may be specified at the job, group, or task levels for ultimate flexibility. + More than one spread stanza may be specified with relative weights between each. +--- + +# `spread` Stanza + +
Placement | +
+ job -> **spread**
+ + job -> group -> **spread**
+ + job -> group -> task -> **spread**
+ |
+
---|
([target](#target-parameters): )
- Specifies one or more target
+ percentages for each value of the `attribute` in the spread stanza. If this is omitted,
+ Nomad will spread allocations evenly across all values of the attribute.
+
+- `weight` `(integer:0)` - Specifies a weight for the spread stanza. The weight is used
+ during scoring and must be an integer between -100 to 100. Weights can be used
+ when there is more than one spread or affinity stanza to express relative preference across them.
+
+## `target` Parameters
+
+- `value` `(string:"")` - Specifies a target value of the attribute from a `spread` stanza.
+
+- `percent` `(integer:0)` - Specifies the percentage associated with the target value.
+
+## `spread` Examples
+
+The following examples show different ways to use the `spread` stanza.
+
+### Even Spread Across Data Center
+
+This example shows a spread stanza across the node's `datacenter` attribute. Allocations
+are placed evenly across all datacenters with this example.
+
+```hcl
+spread {
+ attribute = "${node.datacenter}"
+ weight = 100
+}
+```
+
+### Spread With Target Percentages
+
+This example shows a spread stanza that specifies target percentages for two
+different datacenters.
+
+```hcl
+spread {
+ attribute = "${node.datacenter}"
+ weight = 100
+ target "us-east1" {
+ percent = 60
+ }
+ target "us-west1" {
+ percent = 40
+ }
+}
+```
+
+### Spread Across Multiple Attributes
+
+This example shows spread stanzas with multiple attributes
+
+```hcl
+spread {
+ attribute = "${node.datacenter}"
+ weight = 50
+}
+spread {
+ attribute = "${meta.rack}"
+ weight = 50
+}
+```
+
+[job]: /docs/job-specification/job.html "Nomad job Job Specification"
+[group]: /docs/job-specification/group.html "Nomad group Job Specification"
+[client-meta]: /docs/configuration/client.html#meta "Nomad meta Job Specification"
+[task]: /docs/job-specification/task.html "Nomad task Job Specification"
+[interpolation]: /docs/runtime/interpolation.html "Nomad interpolation"
+[node-variables]: /docs/runtime/interpolation.html#node-variables- "Nomad interpolation-Node variables"
+[constraint]: /docs/job-specification/constraint.html "Nomad Constraint job Specification"
+
+