[OpenStack-Infra] opportunity for convergence with jjb, turbo-hipster and ansible

Antoine Musso hashar at free.fr
Fri Jun 27 12:40:44 UTC 2014


Le 16/06/2014 09:31, Joshua Hesketh a écrit :
<snip monty>
> 
> I'm not very familiar with Ansible but I think one of the tricky parts
> will be expanding the job definitions from the templates, groups and
> projects like JJB currently does. Perhaps JJB continues to do that
> expansion but all JJB does is execute Ansible?

There is no ansible plugin in Jenkins, but we can create a virtual
builder in JJB that just generate the shell builder command or inject
the content of a .ansible file. Something like:

 ansible:
    playbooks:
      - lint
      - rsync-doc

Which would inject lint.ansible and rsync-doc.ansible.

Seems to me Ansible is just shell on steroids.

> This got me to thinking, what if we had agentless job runners. For
> example, zuul could use the ansible playbooks to run the jobs itself. It
> would likely do this through zuul-workers so it would scale, but it
> would remove any complexity for job runners such as Jenkins or
> Turbo-Hipster.

As I understand Turbo-Hipster, that is more or less what is doing.  It
is a Gearman client registering functions and does not rely on Jenkins
at all.

Maybe the Gearman client from Turbo-Hipster could be upstreamed to Zuul
as a new zuul-worker interface that folks can expand to provide new tasks.

That does not solve the JJB / Ansible code duplication though.

> Further to that, we could also look at merging zuul's layout.yaml and
> JJB's job definitions into one set of configs. For each job we could
> define which projects and pipelines it triggers on in the jjb format
> which zuul then interprets, builds the entire list of jobs and then uses
> ansible to run the playbooks. This would reduce the extra entry of
> defining jobs in jjb as well as zuul.

I was wondering whether yet another DSL could be build on top of JJB / Zuul.

JJB would provide the templates, macro etc and Zuul the pipelines and
templates.  The new DSL would let you, out of a single definition,
realise the appropriate JJB and Zuul project sections.

>From there one could build a Django app on top of the new DSL and let
folks easily click the jobs they want on their project.  And you end up
with a CI self service.


Sorry probably does not make any sense.


-- 
Antoine "hashar" Musso



More information about the OpenStack-Infra mailing list