Hi,
On Tue, Jul 2, 2019 at 1:21 AM Miroslav Vadkerti <mvadkert(a)redhat.com>
wrote:
Hi,
This is awesome! Looking forward meeting you on Flock to discuss where
this is going.
Sure.
* Run jobs when PRs are opened/changed on a Pagure instance. Recently Zuul
added support for Pagure events so we were able to set up some packaging
jobs on Zuul triggered by PRs on
src.fedoraproject.org. There are three
jobs attached:
** The first job runs a scratch build on Koji and shares artifacts (rpms)
with two child jobs.
Is this really build on Koji, or you build it in mock on your nodes?
https://fedora.softwarefactory-project.io/logs/5/5/616ac07a47e38483d6bbf6...
The SRPM is built on the job's node in a mock then the built SRPM is passed
to koji. See below:
https://fedora.softwarefactory-project.io/logs/5/5/616ac07a47e38483d6bbf6...
The ARA report is great to get an overview of the job flow:
https://fedora.softwarefactory-project.io/logs/5/5/616ac07a47e38483d6bbf6...
Zuul-gateway seems to be quite a workaround, is the long term plan to
change to support event based triggers "directly" ?
Yes it is a workaround. We have started a discussion about an AMQP trigger
with Zuul's maintainers
http://lists.zuul-ci.org/pipermail/zuul-discuss/2019-May/000929.html. But
no real plan for the moment.
My Testing Farm team would like to experiment using Zuul for our
workflows.
Sure, let's us know how we could help.
Does Nodepool support prioritization of different drivers? We would
like
to offload some of our workloads to AWS in case of spikes, but would like
to use it only if non-paid resources (Openstack, Openshift) had been
exhausted.
AFAIK not out of the box. But with an external process you might be able to
detect your are out of quota on the OpenStack provider and push in the
Nodepool providers configuration the setting AWS:max-server value from 0 to
something else. Then Nodepool will start to use the AWS provider. When
spikes stop you revert the max-server setting to 0 then Nodepool will stop
spawning nodes on AWS.
How is the driver selected for a job? Our testing jobs describe an
environment which we would like the CI system to translate to a specific
driver, according to an predefined priority.
A job definition in Zuul needs to specify a nodeset. A nodeset is a
collection of nodes for the job's Ansible inventory. Each node must match a
Nodepool node's label. In other words in Nodepool you define the nodes
details (provider type (openstack/aws/...), base image, VM flavor) and set
labels to nodes. In Zuul, via a nodeset, you define the available nodes
(using the Nodepool labels) for the job's inventory. For instance you could
have the same label accross multiple providers. However there is not any
priority system in that mechanics.
https://zuul-ci.org/docs/zuul/user/config.html#nodeset
How hard would it be to support non-Ansible based jobs please?
Difficult to respond w/o more details, Zuul only understand a pre-defined
job format
https://zuul-ci.org/docs/zuul/user/config.html#job so a
migration tool would need to be written.