A Nodeset is a named collection of nodes for use by a job. Jobs may specify what nodes they require individually, however, by defining groups of node types once and referring to them by name, job configuration may be simplified.
Nodesets, like most configuration items, are unique within a tenant, though a nodeset may be defined on multiple branches of the same project as long as the contents are the same. This is to aid in branch maintenance, so that creating a new branch based on an existing branch will not immediately produce a configuration error.
- nodeset: name: nodeset1 nodes: - name: controller label: controller-label - name: compute1 label: compute-label - name: - compute2 - web label: compute-label groups: - name: ceph-osd nodes: - controller - name: ceph-monitor nodes: - controller - compute1 - compute2 - name: ceph-web nodes: - web
A Nodeset requires two attributes:
The name of the Nodeset, to be referenced by a Job.
This is required when defining a standalone Nodeset in Zuul. When defining an in-line anonymous nodeset within a job definition, this attribute should be omitted.
A list of node definitions, each of which has the following format:
The name of the node. This will appear in the Ansible inventory for the job.
This can also be as a list of strings. If so, then the list of hosts in the Ansible inventory will share a common ansible_host address.
The Nodepool label for the node. Zuul will request a node with this label.
- nodeset.nodes.name (required)
Additional groups can be defined which are accessible from the ansible playbooks.
The name of the group to be referenced by an ansible playbook.
The nodes that shall be part of the group. This is specified as a list of strings.
- nodeset.groups.name (required)
- nodeset.name (required)