Connections¶
zuul coordinates talking to multiple different systems via the concept of connections. A connection is listed in the zuul.conf file and is then referred to from the layout.yaml. This makes it possible to receive events from gerrit via one connection and post results from another connection that may report back as a different user.
Gerrit¶
Create a connection with gerrit.
driver=gerrit
- server
- FQDN of Gerrit server.
server=review.example.com
- port
- Optional: Gerrit server port.
port=29418
- baseurl
- Optional: path to Gerrit web interface. Defaults to
https://<value of server>/
.baseurl=https://review.example.com/review_site/
- user
- User name to use when logging into above server via ssh.
user=zuul
- sshkey
- Path to SSH key to use when logging into above server.
sshkey=/home/zuul/.ssh/id_rsa
- keepalive
- Optional: Keepalive timeout, 0 means no keepalive.
keepalive=60
- no_http
- Optional: Don’t use HTTP for accessing Gerrit. You may need this if
your Gerrit doesn’t have public HTTP access.
no_http=false
Gerrit Configuration¶
Zuul will need access to a Gerrit user.
Create an SSH keypair for Zuul to use if there isn’t one already, and create a Gerrit user with that key:
cat ~/id_rsa.pub | ssh -p29418 gerrit.example.com gerrit create-account --ssh-key - --full-name Jenkins jenkins
Give that user whatever permissions will be needed on the projects you
want Zuul to gate. For instance, you may want to grant Verified
+/-1
and Submit
to the user. Additional categories or values may
be added to Gerrit. Zuul is very flexible and can take advantage of
those.
SMTP¶
driver=smtp
- server
- SMTP server hostname or address to use.
server=localhost
- port
- Optional: SMTP server port.
port=25
- default_from
- Who the email should appear to be sent from when emailing the report.
This can be overridden by individual pipelines.
default_from=zuul@example.com
- default_to
- Who the report should be emailed to by default.
This can be overridden by individual pipelines.
default_to=you@example.com
SQL¶
Only one connection per a database is permitted.
driver=sql
- dburi
- Database connection information in the form of a URI understood by sqlalchemy. eg http://docs.sqlalchemy.org/en/rel_1_0/core/engines.html#database-urls
dburi=mysql://user:pass@localhost/db