summaryrefslogtreecommitdiff
path: root/doc/source
diff options
context:
space:
mode:
Diffstat (limited to 'doc/source')
-rw-r--r--doc/source/drivers/gerrit.rst97
-rw-r--r--doc/source/drivers/github.rst36
-rw-r--r--doc/source/examples/docker-compose.yaml10
-rw-r--r--doc/source/examples/etc_nodepool/nodepool.yaml4
-rw-r--r--doc/source/examples/node-Dockerfile2
-rw-r--r--doc/source/examples/zuul-config/zuul.d/jobs.yaml4
-rw-r--r--doc/source/examples/zuul-config/zuul.d/jobs2.yaml4
-rw-r--r--doc/source/job-content.rst62
8 files changed, 200 insertions, 19 deletions
diff --git a/doc/source/drivers/gerrit.rst b/doc/source/drivers/gerrit.rst
index 4e7fc7cea..3c16f202a 100644
--- a/doc/source/drivers/gerrit.rst
+++ b/doc/source/drivers/gerrit.rst
@@ -239,6 +239,10 @@ be able to invoke the ``gerrit stream-events`` command over SSH.
.. attr:: require-approval
+ .. warning:: This is deprecated and will be removed in a future
+ version. Use :attr:`pipeline.trigger.<gerrit
+ source>.require` instead.
+
This may be used for any event. It requires that a certain kind
of approval be present for the current patchset of the change
(the approval could be added by the event in question). It
@@ -246,11 +250,39 @@ be able to invoke the ``gerrit stream-events`` command over SSH.
source>.approval`. For each specified criteria there must exist
a matching approval.
+ This is ignored if the :attr:`pipeline.trigger.<gerrit
+ source>.require` attribute is present.
+
.. attr:: reject-approval
+ .. warning:: This is deprecated and will be removed in a future
+ version. Use :attr:`pipeline.trigger.<gerrit
+ source>.reject` instead.
+
This takes a list of approvals in the same format as
:attr:`pipeline.trigger.<gerrit source>.require-approval` but
- will fail to enter the pipeline if there is a matching approval.
+ the item will fail to enter the pipeline if there is a matching
+ approval.
+
+ This is ignored if the :attr:`pipeline.trigger.<gerrit
+ source>.reject` attribute is present.
+
+ .. attr:: require
+
+ This may be used for any event. It describes conditions that
+ must be met by the change in order for the trigger event to
+ match. Those conditions may be satisfied by the event in
+ question. It follows the same syntax as
+ :ref:`gerrit_requirements`.
+
+ .. attr:: reject
+
+ This may be used for any event and is the mirror of
+ :attr:`pipeline.trigger.<gerrit source>.require`. It describes
+ conditions that when met by the change cause the trigger event
+ not to match. Those conditions may be satisfied by the event in
+ question. It follows the same syntax as
+ :ref:`gerrit_requirements`.
Reporter Configuration
----------------------
@@ -283,6 +315,8 @@ with an HTTP password, in which case the HTTP API is used.
A :ref:`connection<connections>` that uses the gerrit driver must be
supplied to the trigger.
+.. _gerrit_requirements:
+
Requirements Configuration
--------------------------
@@ -365,7 +399,7 @@ order to be enqueued into the pipeline.
.. attr:: status
A string value that corresponds with the status of the change
- reported by the trigger.
+ reported by Gerrit.
.. attr:: pipeline.reject.<gerrit source>
@@ -375,10 +409,12 @@ order to be enqueued into the pipeline.
.. attr:: approval
- This takes an approval or a list of approvals. If an approval
- matches the provided criteria the change can not be entered
- into the pipeline. It follows the same syntax as
- :attr:`pipeline.require.<gerrit source>.approval`.
+ This requires that a certain kind of approval not be present for the
+ current patchset of the change (the approval could be added by
+ the event in question). Approval is a dictionary or a list of
+ dictionaries with attributes listed below, all of which are
+ optional and are combined together so that there must be no approvals
+ matching all specified requirements.
Example to reject a change with any negative vote:
@@ -389,6 +425,55 @@ order to be enqueued into the pipeline.
approval:
- Code-Review: [-1, -2]
+ .. attr:: username
+
+ If present, an approval from this username is required. It is
+ treated as a regular expression.
+
+ .. attr:: email
+
+ If present, an approval with this email address is required. It is
+ treated as a regular expression.
+
+ .. attr:: older-than
+
+ If present, the approval must be older than this amount of time
+ to match. Provide a time interval as a number with a suffix of
+ "w" (weeks), "d" (days), "h" (hours), "m" (minutes), "s"
+ (seconds). Example ``48h`` or ``2d``.
+
+ .. attr:: newer-than
+
+ If present, the approval must be newer than this amount
+ of time to match. Same format as "older-than".
+
+ Any other field is interpreted as a review category and value
+ pair. For example ``Verified: 1`` would require that the
+ approval be for a +1 vote in the "Verified" column. The value
+ may either be a single value or a list: ``Verified: [1, 2]``
+ would match either a +1 or +2 vote.
+
+ .. attr:: open
+
+ A boolean value (``true`` or ``false``) that indicates whether
+ the change must be open or closed in order to be rejected.
+
+ .. attr:: current-patchset
+
+ A boolean value (``true`` or ``false``) that indicates whether the
+ change must be the current patchset in order to be rejected.
+
+ .. attr:: wip
+
+ A boolean value (``true`` or ``false``) that indicates whether the
+ change must be wip or not wip in order to be rejected.
+
+ .. attr:: status
+
+ A string value that corresponds with the status of the change
+ reported by Gerrit.
+
+
Reference Pipelines Configuration
---------------------------------
diff --git a/doc/source/drivers/github.rst b/doc/source/drivers/github.rst
index 148c6f976..7cacf45ac 100644
--- a/doc/source/drivers/github.rst
+++ b/doc/source/drivers/github.rst
@@ -339,7 +339,7 @@ the following options.
format of ``user:context:status``. For example,
``zuul_github_ci_bot:check_pipeline:success``.
- .. attr: check
+ .. attr:: check
This is only used for ``check_run`` events. It works similar to
the ``status`` attribute and accepts a list of strings each of
@@ -363,6 +363,38 @@ the following options.
always sends full ref name, eg. ``refs/tags/bar`` and this
string is matched against the regular expression.
+ .. attr:: require-status
+
+ .. warning:: This is deprecated and will be removed in a future
+ version. Use :attr:`pipeline.trigger.<github
+ source>.require` instead.
+
+ This may be used for any event. It requires that a certain kind
+ of status be present for the PR (the status could be added by
+ the event in question). It follows the same syntax as
+ :attr:`pipeline.require.<github source>.status`. For each
+ specified criteria there must exist a matching status.
+
+ This is ignored if the :attr:`pipeline.trigger.<github
+ source>.require` attribute is present.
+
+ .. attr:: require
+
+ This may be used for any event. It describes conditions that
+ must be met by the PR in order for the trigger event to match.
+ Those conditions may be satisfied by the event in question. It
+ follows the same syntax as :ref:`github_requirements`.
+
+ .. attr:: reject
+
+ This may be used for any event and is the mirror of
+ :attr:`pipeline.trigger.<github source>.require`. It describes
+ conditions that when met by the PR cause the trigger event not
+ to match. Those conditions may be satisfied by the event in
+ question. It follows the same syntax as
+ :ref:`github_requirements`.
+
+
Reporter Configuration
----------------------
Zuul reports back to GitHub via GitHub API. Available reports include a PR
@@ -462,6 +494,8 @@ itself. Status name, description, and context is taken from the pipeline.
.. _Github App: https://developer.github.com/apps/
+.. _github_requirements:
+
Requirements Configuration
--------------------------
diff --git a/doc/source/examples/docker-compose.yaml b/doc/source/examples/docker-compose.yaml
index 43c0bec61..0eb05835b 100644
--- a/doc/source/examples/docker-compose.yaml
+++ b/doc/source/examples/docker-compose.yaml
@@ -11,7 +11,7 @@ services:
networks:
- zuul
gerritconfig:
- image: docker.io/zuul/zuul-executor
+ image: quay.io/zuul-ci/zuul-executor
environment:
- http_proxy
- https_proxy
@@ -66,7 +66,7 @@ services:
zuul-scheduler -f'
# FIXME: The scheduler has no ansible anymore so use the executor image.
# This needs to be changes such that ansible is not required for startup.
- image: docker.io/zuul/zuul-scheduler
+ image: quay.io/zuul-ci/zuul-scheduler
volumes:
- "${ZUUL_TUTORIAL_CONFIG:-./etc_zuul/}:/etc/zuul/:z"
- "./playbooks/:/var/playbooks/:z"
@@ -83,7 +83,7 @@ services:
- mysql
ports:
- "9000:9000"
- image: docker.io/zuul/zuul-web
+ image: quay.io/zuul-ci/zuul-web
environment:
ZUUL_MYSQL_PASSWORD: secret
volumes:
@@ -101,7 +101,7 @@ services:
- ZUUL_MYSQL_PASSWORD=secret
depends_on:
- scheduler
- image: docker.io/zuul/zuul-executor
+ image: quay.io/zuul-ci/zuul-executor
volumes:
- "${ZUUL_TUTORIAL_CONFIG:-./etc_zuul/}:/etc/zuul/:z"
- "./playbooks/:/var/playbooks/:z"
@@ -126,7 +126,7 @@ services:
launcher:
depends_on:
- zk
- image: docker.io/zuul/nodepool-launcher
+ image: quay.io/zuul-ci/nodepool-launcher
volumes:
- "./playbooks/:/var/playbooks/:z"
- "./etc_nodepool/:/etc/nodepool/:z"
diff --git a/doc/source/examples/etc_nodepool/nodepool.yaml b/doc/source/examples/etc_nodepool/nodepool.yaml
index 1c1830635..105b0ef54 100644
--- a/doc/source/examples/etc_nodepool/nodepool.yaml
+++ b/doc/source/examples/etc_nodepool/nodepool.yaml
@@ -7,7 +7,7 @@ zookeeper-tls:
ca: /var/certs/certs/cacert.pem
labels:
- - name: ubuntu-focal
+ - name: ubuntu-jammy
providers:
- name: static-vms
@@ -16,7 +16,7 @@ providers:
- name: main
nodes:
- name: node
- labels: ubuntu-focal
+ labels: ubuntu-jammy
host-key: "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOgHJYejINIKzUiuSJ2MN8uPc+dfFrZ9JH1hLWS8gI+g"
python-path: /usr/bin/python3
username: root
diff --git a/doc/source/examples/node-Dockerfile b/doc/source/examples/node-Dockerfile
index ff74aa592..b588bcf2c 100644
--- a/doc/source/examples/node-Dockerfile
+++ b/doc/source/examples/node-Dockerfile
@@ -1,4 +1,4 @@
-FROM docker.io/ubuntu:20.04
+FROM docker.io/ubuntu:22.04
RUN apt-get update \
&& DEBIAN_FRONTEND="noninteractive" apt-get -y install \
diff --git a/doc/source/examples/zuul-config/zuul.d/jobs.yaml b/doc/source/examples/zuul-config/zuul.d/jobs.yaml
index 8ad979e46..bb9822f48 100644
--- a/doc/source/examples/zuul-config/zuul.d/jobs.yaml
+++ b/doc/source/examples/zuul-config/zuul.d/jobs.yaml
@@ -3,5 +3,5 @@
parent: null
nodeset:
nodes:
- - name: ubuntu-focal
- label: ubuntu-focal
+ - name: ubuntu-jammy
+ label: ubuntu-jammy
diff --git a/doc/source/examples/zuul-config/zuul.d/jobs2.yaml b/doc/source/examples/zuul-config/zuul.d/jobs2.yaml
index a6ed1a633..c7b4a6878 100644
--- a/doc/source/examples/zuul-config/zuul.d/jobs2.yaml
+++ b/doc/source/examples/zuul-config/zuul.d/jobs2.yaml
@@ -18,5 +18,5 @@
timeout: 1800
nodeset:
nodes:
- - name: ubuntu-focal
- label: ubuntu-focal
+ - name: ubuntu-jammy
+ label: ubuntu-jammy
diff --git a/doc/source/job-content.rst b/doc/source/job-content.rst
index d6bb07683..643632d5b 100644
--- a/doc/source/job-content.rst
+++ b/doc/source/job-content.rst
@@ -669,6 +669,68 @@ of item.
- shell: echo example
when: zuul_success | bool
+.. var:: nodepool
+
+ Information about each host from Nodepool is supplied in the
+ `nodepool` host variable. Availability of values varies based on
+ the node and the driver that supplied it. Values may be ``null``
+ if they are not applicable.
+
+ .. var:: label
+
+ The nodepool label of this node.
+
+ .. var:: az
+
+ The availability zone in which this node was placed.
+
+ .. var:: cloud
+
+ The name of the cloud in which this node was created.
+
+ .. var:: provider
+
+ The name of the nodepool provider of this node.
+
+ .. var:: region
+
+ The name of the nodepool provider's region.
+
+ .. var:: host_id
+
+ The cloud's host identification for this node's hypervisor.
+
+ .. var:: external_id
+
+ The cloud's identifier for this node.
+
+ .. var:: slot
+
+ If the node supports running multiple jobs on the node, a unique
+ numeric ID for the subdivision of the node assigned to this job.
+ This may be used to avoid build directory collisions.
+
+ .. var:: interface_ip
+
+ The best IP address to use to contact the node as determined by
+ the cloud provider and nodepool.
+
+ .. var:: public_ipv4
+
+ A public IPv4 address of the node.
+
+ .. var:: private_ipv4
+
+ A private IPv4 address of the node.
+
+ .. var:: public_ipv6
+
+ A public IPv6 address of the node.
+
+ .. var:: private_ipv6
+
+ A private IPv6 address of the node.
+
Change Items
~~~~~~~~~~~~