Staticο
Zuul can use statically defined nodes as a source for build nodes. These can be real hardware or virtual machines that are managed externally to Zuul.
To add static nodes to a provider in Zuul, use the provider[static].nodes attribute.
Static nodes in Zuul have persistent node ids that are determined based on their connection information. This means the same node ID is used for every build on a given static node.
Warning
There is no restriction that would prohibit users in multiple tenants from configuring the same static nodes. If static nodes should only be used by users of certain tenants, you may wish to configure the static node to only accept a Tenant Key in order to restrict access.
Connection Configurationο
The connection configuration for the static driver is not used to provide any settings or information to Zuul, but a connection is nonetheless required in order to enable the functionality.
The only supported option in zuul.conf connections is:
Provider Configurationο
The static driver adds the following options to the provider
and section configurations:
-
provider[static]ο
Type: dict The attributes available for configuring a static provider are below.
-
provider[static].abstractο
Default:False
Type: bool Whether a section is intended to be inherited by another section or a provider. This setting is currently unused (but may be used in the future). If a section is used to provide common values to other sections, set this to true. Otherwise, the default of false indicates that the section should be referenced directly by providers.
-
provider[static].connectionο
Type: str The name of the connection to use. This attribute is only used by section objects.
-
provider[static].flavor-defaultsο
Type: dict Attributes to be set as default values for any flavor used with this provider. Many attributes which may be set on an individual flavor may be set once in this section and used for all the flavors in this provider. Values set on individual flavors may still override the values set here.
-
provider[static].flavor-defaults.finalο
Default:False Whether the configuration of the flavor may be updated by values in flavor-defaults or overidden with a new definition by sections or providers lower in the hierarchy than the point at which the final attribute is applied.
- Trueο
The flavor may not be updated or overidden.
- Falseο
The flavor may be updated or overidden.
- allow-overrideο
The flavor may not be updated by flavor-defaults but may be explicitly overidden by redefining it in a new βflavorβ entry.
-
provider[static].flavor-defaults.finalο
-
provider[static].flavorsο
Type: dict A list of flavors associated with this provider.
-
provider[static].flavors.descriptionο
Type: str A textual description of the image for reference purposes.
-
provider[static].flavors.finalο
Default:False Whether the configuration of the flavor may be updated by values in flavor-defaults or overidden with a new definition by sections or providers lower in the hierarchy than the point at which the final attribute is applied.
- Trueο
The flavor may not be updated or overidden.
- Falseο
The flavor may be updated or overidden.
- allow-overrideο
The flavor may not be updated by flavor-defaults but may be explicitly overidden by redefining it in a new βflavorβ entry.
-
provider[static].flavors.nameο
Type: str The name of the flavor. Used to refer to the flavor in Zuul configuration.
-
provider[static].flavors.descriptionο
-
provider[static].image-defaultsο
Type: dict Attributes to be set as default values for any image used with this provider. Many attributes which may be set on an individual image may be set once in this section and used for all the images in this provider. Values set on individual images may still override the values set here.
-
provider[static].image-defaults.connection-portο
Type: int The port that Zuul should use when connecting to the node. For most nodes this is not necessary. This defaults to 22 when
connection-typeis βsshβ and 5986 when it is βwinrmβ.
-
provider[static].image-defaults.connection-typeο
The connection type that a consumer should use when connecting to the node.
- winrmο
A winrm connection.
- sshο
An ssh connection.
-
provider[static].image-defaults.finalο
Default:False Whether the configuration of the label may be updated by values in label-defaults or overidden with a new definition by sections or providers lower in the hierarchy than the point at which the final attribute is applied.
- Trueο
The label may not be updated or overidden.
- Falseο
The label may be updated or overidden.
- allow-overrideο
The label may not be updated by label-defaults but may be explicitly overidden by redefining it in a new βlabelβ entry.
-
provider[static].image-defaults.import-timeoutο
Default:300
Type: int The limit on the amount of time a successful image import can take.
-
provider[static].image-defaults.python-pathο
Type: str The path of the default python interpreter. Used by Zuul to set
ansible_python_interpreter. The special valueautowill direct Zuul to use inbuilt Ansible logic to select the interpreter.
-
provider[static].image-defaults.shell-typeο
Type: str The shell type of the nodeβs default shell executable. Used by Zuul to set
ansible_shell_type. This setting should only be usedFor a windows image with the experimental connection-type
sshin which casecmdorpowershellshould be set and reflect the nodeβsDefaultShellconfiguration.If the default shell is not Bourne compatible (sh), but instead e.g.
cshorfish, and the user is aware that there is a long-standing issue withansible_shell_typein combination withbecome.
-
provider[static].image-defaults.tagsο
Type: dict A dictionary of tags to add to uploaded images, and to nodes created from them. Avoid the use of zuul_ as a key prefix since Zuul uses this for internal values.
-
provider[static].image-defaults.upload-methodsο
Default:['copy', 'import', 'upload']
Type: list An ordered list of methods to use when creating an image in the provider.
- copyο
Copy the image from another provider if available.
- importο
Import the image directly from its storage location.
- uploadο
Download the image from its storage location and upload it to the provider.
-
provider[static].image-defaults.usernameο
Type: str The username Zuul should use when connecting to the node.
-
provider[static].image-defaults.connection-portο
-
provider[static].imagesο
Type: list A list of images associated with this provider.
-
provider[static].images[cloud]ο
Type: dict These are the attributes available for a cloud image.
-
provider[static].images[cloud].connection-portο
Type: int The port that Zuul should use when connecting to the node. For most nodes this is not necessary. This defaults to 22 when
connection-typeis βsshβ and 5986 when it is βwinrmβ.
-
provider[static].images[cloud].connection-typeο
The connection type that a consumer should use when connecting to the node.
- winrmο
A winrm connection.
- sshο
An ssh connection.
-
provider[static].images[cloud].descriptionο
Type: str A textual description of the image for reference purposes.
-
provider[static].images[cloud].finalο
Default:False Whether the configuration of the label may be updated by values in label-defaults or overidden with a new definition by sections or providers lower in the hierarchy than the point at which the final attribute is applied.
- Trueο
The label may not be updated or overidden.
- Falseο
The label may be updated or overidden.
- allow-overrideο
The label may not be updated by label-defaults but may be explicitly overidden by redefining it in a new βlabelβ entry.
-
provider[static].images[cloud].import-timeoutο
Default:300
Type: int The limit on the amount of time a successful image import can take.
-
provider[static].images[cloud].nameο
Type: str The name of the image. Used to refer to the image in Zuul configuration.
-
provider[static].images[cloud].python-pathο
Type: str The path of the default python interpreter. Used by Zuul to set
ansible_python_interpreter. The special valueautowill direct Zuul to use inbuilt Ansible logic to select the interpreter.
-
provider[static].images[cloud].shell-typeο
Type: str The shell type of the nodeβs default shell executable. Used by Zuul to set
ansible_shell_type. This setting should only be usedFor a windows image with the experimental connection-type
sshin which casecmdorpowershellshould be set and reflect the nodeβsDefaultShellconfiguration.If the default shell is not Bourne compatible (sh), but instead e.g.
cshorfish, and the user is aware that there is a long-standing issue withansible_shell_typein combination withbecome.
-
provider[static].images[cloud].typeο
The type of image.
- cloudο
An existing image available in the cloud.
-
provider[static].images[cloud].usernameο
Type: str The username Zuul should use when connecting to the node.
-
provider[static].images[cloud].connection-portο
-
provider[static].images[zuul]ο
Type: dict These are the attributes available for a Zuul image.
-
provider[static].images[zuul].connection-portο
Type: int The port that Zuul should use when connecting to the node. For most nodes this is not necessary. This defaults to 22 when
connection-typeis βsshβ and 5986 when it is βwinrmβ.
-
provider[static].images[zuul].connection-typeο
The connection type that a consumer should use when connecting to the node.
- winrmο
A winrm connection.
- sshο
An ssh connection.
-
provider[static].images[zuul].descriptionο
Type: str A textual description of the image for reference purposes.
-
provider[static].images[zuul].finalο
Default:False Whether the configuration of the label may be updated by values in label-defaults or overidden with a new definition by sections or providers lower in the hierarchy than the point at which the final attribute is applied.
- Trueο
The label may not be updated or overidden.
- Falseο
The label may be updated or overidden.
- allow-overrideο
The label may not be updated by label-defaults but may be explicitly overidden by redefining it in a new βlabelβ entry.
-
provider[static].images[zuul].import-timeoutο
Default:300
Type: int The limit on the amount of time a successful image import can take.
-
provider[static].images[zuul].nameο
Type: str The name of the image. Used to refer to the image in Zuul configuration.
-
provider[static].images[zuul].python-pathο
Type: str The path of the default python interpreter. Used by Zuul to set
ansible_python_interpreter. The special valueautowill direct Zuul to use inbuilt Ansible logic to select the interpreter.
-
provider[static].images[zuul].shell-typeο
Type: str The shell type of the nodeβs default shell executable. Used by Zuul to set
ansible_shell_type. This setting should only be usedFor a windows image with the experimental connection-type
sshin which casecmdorpowershellshould be set and reflect the nodeβsDefaultShellconfiguration.If the default shell is not Bourne compatible (sh), but instead e.g.
cshorfish, and the user is aware that there is a long-standing issue withansible_shell_typein combination withbecome.
-
provider[static].images[zuul].tagsο
Type: dict A dictionary of tags to add to uploaded images, and to nodes created from them. Avoid the use of zuul_ as a key prefix since Zuul uses this for internal values.
-
provider[static].images[zuul].upload-methodsο
Default:['copy', 'import', 'upload']
Type: list An ordered list of methods to use when creating an image in the provider.
- copyο
Copy the image from another provider if available.
- importο
Import the image directly from its storage location.
- uploadο
Download the image from its storage location and upload it to the provider.
-
provider[static].images[zuul].usernameο
Type: str The username Zuul should use when connecting to the node.
-
provider[static].images[zuul].connection-portο
-
provider[static].label-defaultsο
Type: dict Attributes to be set as default values for any label used with this provider. Many attributes which may be set on an individual label may be set once in this section and used for all the labels in this provider. Values set on individual labels may still override the values set here.
-
provider[static].label-defaults.boot-timeoutο
Default:300
Type: int The time (in seconds) to wait for a node to boot.
-
provider[static].label-defaults.executor-zoneο
Type: str Specify that a Zuul executor in the specified zone is used to run jobs with nodes from this label.
-
provider[static].label-defaults.finalο
Default:False Whether the configuration of the label may be updated by values in label-defaults or overidden with a new definition by sections or providers lower in the hierarchy than the point at which the final attribute is applied.
- Trueο
The label may not be updated or overidden.
- Falseο
The label may be updated or overidden.
- allow-overrideο
The label may not be updated by label-defaults but may be explicitly overidden by redefining it in a new βlabelβ entry.
-
provider[static].label-defaults.host-key-checkingο
Default:True
Type: bool Whether to validate SSH host keys. When true, this helps ensure that nodes are ready to receive SSH connections before they are used. When set to false, Zuul will not attempt to ssh-keyscan nodes after they are booted. Disable this if the zuul-launcher and the nodes it launches are on different networks, where the launcher is unable to reach the nodes directly.
-
provider[static].label-defaults.key-nameο
Type: str The name of a keypair that will be used when booting the node.
-
provider[static].label-defaults.max-ageο
Default:0
Type: int The time (in seconds) since creation that a node may be available for use. Ready nodes older than this time will be deleted.
-
provider[static].label-defaults.max-ready-ageο
Default:0
Type: int The time (in seconds) an unassigned node should stay in ready state.
-
provider[static].label-defaults.min-retention-timeο
Default:0
Type: int The time (in seconds) since an instance was launched, during which a node will not be deleted. For node resources with minimum billing times, this can be used to ensure that the instance is retained for at least the minimum billing interval.
This setting takes precedence over max-[ready-]age.
-
provider[static].label-defaults.reuseο
Default:False
Type: bool Should the node be reused (True) or deleted (False) after use.
-
provider[static].label-defaults.slotsο
Default:1
Type: int How many jobs are permitted run on the same node simultaneously.
-
provider[static].label-defaults.snapshot-expirationο
Default:604800
Type: int The time (in seconds) until a snapshot expires.
-
provider[static].label-defaults.snapshot-timeoutο
Default:3600
Type: int The time (in seconds) to wait for a snapshot to complete.
-
provider[static].label-defaults.tagsο
Type: dict A dictionary of tags to add to nodes. Avoid the use of zuul_ as a key prefix since Zuul uses this for internal values.
-
provider[static].label-defaults.boot-timeoutο
-
provider[static].labelsο
Type: dict A list of labels associated with this provider.
-
provider[static].labels.boot-timeoutο
Default:300
Type: int The time (in seconds) to wait for a node to boot.
-
provider[static].labels.descriptionο
Type: str A textual description of the label for reference purposes.
-
provider[static].labels.executor-zoneο
Type: str Specify that a Zuul executor in the specified zone is used to run jobs with nodes from this label.
-
provider[static].labels.finalο
Default:False Whether the configuration of the label may be updated by values in label-defaults or overidden with a new definition by sections or providers lower in the hierarchy than the point at which the final attribute is applied.
- Trueο
The label may not be updated or overidden.
- Falseο
The label may be updated or overidden.
- allow-overrideο
The label may not be updated by label-defaults but may be explicitly overidden by redefining it in a new βlabelβ entry.
-
provider[static].labels.flavorο
Type: str The flavor to use with this label.
-
provider[static].labels.host-key-checkingο
Default:True
Type: bool Whether to validate SSH host keys. When true, this helps ensure that nodes are ready to receive SSH connections before they are used. When set to false, Zuul will not attempt to ssh-keyscan nodes after they are booted. Disable this if the zuul-launcher and the nodes it launches are on different networks, where the launcher is unable to reach the nodes directly.
-
provider[static].labels.imageο
Type: str The image to use with this label.
-
provider[static].labels.key-nameο
Type: str The name of a keypair that will be used when booting the node.
-
provider[static].labels.max-ageο
Default:0
Type: int The time (in seconds) since creation that a node may be available for use. Ready nodes older than this time will be deleted.
-
provider[static].labels.max-ready-ageο
Default:0
Type: int The time (in seconds) an unassigned node should stay in ready state.
-
provider[static].labels.min-readyο
Default:0
Type: int Minimum number of instances that should be in a ready state. Zuul always creates more nodes as necessary in response to demand, but setting
min-readycan speed processing by attempting to keep nodes on-hand and ready for immedate use. This is best-effort based on available capacity and is not a guaranteed allocation. The default of 0 means that Zuul will only create nodes of this label when there is demand.
-
provider[static].labels.min-retention-timeο
Default:0
Type: int The time (in seconds) since an instance was launched, during which a node will not be deleted. For node resources with minimum billing times, this can be used to ensure that the instance is retained for at least the minimum billing interval.
This setting takes precedence over max-[ready-]age.
-
provider[static].labels.nameο
Type: str The name of the label. Used to refer to the label in Zuul configuration.
-
provider[static].labels.reuseο
Default:False
Type: bool Should the node be reused (True) or deleted (False) after use.
-
provider[static].labels.slotsο
Default:1
Type: int How many jobs are permitted run on the same node simultaneously.
-
provider[static].labels.snapshot-expirationο
Default:604800
Type: int The time (in seconds) until a snapshot expires.
-
provider[static].labels.snapshot-timeoutο
Default:3600
Type: int The time (in seconds) to wait for a snapshot to complete.
-
provider[static].labels.tagsο
Type: dict A dictionary of tags to add to nodes. Avoid the use of zuul_ as a key prefix since Zuul uses this for internal values.
-
provider[static].labels.boot-timeoutο
-
provider[static].launch-attemptsο
Default:3
Type: int The number of times to attempt launching a node before considering the request failed.
-
provider[static].launch-timeoutο
Type: int The time to wait from issuing the command to create a new node until the node is reporting as running. If the timeout is exceeded, the node launch is aborted and the node deleted.
-
provider[static].nameο
Type: str The name of the provider. Used to refer to the provider in Zuul configuration.
-
provider[static].nodesο
Type: dict A list of nodes to be used by this provider.
-
provider[static].nodes.aliasesο
Type: str A list of label aliases to associate with this node. These labels may be used to request this node, but none of their attributes will be used to define characteristics.
-
provider[static].nodes.connection-portο
Type: int The port that Zuul should use when connecting to the node. For most nodes this is not necessary. This defaults to 22 when
connection-typeis βsshβ and 5986 when it is βwinrmβ.
-
provider[static].nodes.host-keyο
Type: str The ssh host key of the node.
-
provider[static].nodes.labelο
Type: str The label to associate with this node. This is the primary label for the node and will be used to supply any necessary information about the nodeβs characteristics.
-
provider[static].nodes.nameο
Type: str The hostname or ip address of the static node.
-
provider[static].nodes.usernameο
Type: str The username Zuul should use when connecting to the node.
-
provider[static].nodes.aliasesο
-
provider[static].parentο
Type: str The name of the parent section from which to inherit. This attribute is only used by section objects. To indicate which section a provider should be attached to, use provider[static].section
-
provider[static].abstractο