[OpenStack-Infra] Thoughts on evolving Zuul

Antoine Musso hashar at free.fr
Thu Mar 26 09:34:58 UTC 2015


On 26/02/15 17:59, James E. Blair wrote:
> A new Zuul component would be created to execute jobs.  Rather than
> running a worker process on each node (which requires installing
> software on the test node, and establishing and maintaining network
> connectivity back to Zuul, and the ability to coordinate actions across
> nodes for multi-node tests), this new component will accept jobs from
> Zuul, and for each one, write an ansible inventory file with the node
> and variable information, and then execute the ansible playbook for that
> job.  This means that the new Zuul component will maintain ssh
> connections to all hosts currently running a job.  This could become a
> bottleneck, but ansible and ssh have been known to scale to a large
> number of simultaneous hosts, and this component may be scaled
> horizontally.  It should be simple enough that it could even be
> automatically scaled if needed.  In turn, however, this does make node
> configuration simpler (test nodes need only have an ssh public key
> installed) and makes tests behave more like deployment.

Hello James,

Something worry me, is that the Zuul scheduler layout file might end up 
very long and complicated since it will define both the workflow and the 
tasks with their context.  The later is currently done in Jenkins jobs

On this list Monty had the idea to teach JJB to generate Ansible tasks 
in addition to the Jenkins XML configuration files.  I have seen a patch 
in JJB to expand the JJB YAML definitions, essentially producing a YAML 
per job. Each can surely be converted to an Ansible task and be made 
available on the nodes.

One can surely write a tiny zuul-worker client that would execute on the 
node, register to the Gearman bus and expose all ansible tasks it is 
able to run.  Such a worker could be isolated in a virtual env to avoid 
dependencies conflicts.

This way the layout.yaml remains simple, you can reuse all the jobs 
definitions and people can write pure ansible task if need be.

My 0.02 cents

-- 
Antoine Musso



More information about the OpenStack-Infra mailing list