[openstack-dev] [TripleO] Making TripleO CI easier to consume outside of TripleO CI

John Trowbridge trown at redhat.com
Tue Jul 12 19:39:41 UTC 2016


Howdy folks,

In the TripleO meeting two weeks ago, it came up that tripleo-quickstart
is being used as a CI tool in RDO. This came about organically, because
we needed to use RDO CI to self-gate quickstart (it relies on having a
baremetal virthost). It displaced another ansible based CI tool there
(khaleesi) and most(all?) of the extra functionality from that tool
(upgrades, scale, baremetal, etc.) has been moved into discrete ansible
roles that are able to plugin to quickstart.[1]

We are still left with two different tool sets, where one should suffice
(and focus CI efforts in one place).

I see two different ways to resolve this.

1. Actively work on making the tripleo-ci scripts consumable external to
tripleo-ci. We have a project in RDO (WeiRDO)[2] that is consuming
upstream CI for packstack and puppet, so it is not totally far-fetched
to add support for TripleO jobs.

Pros:
- All CI development just happens directly in tripleo-ci and RDO just
inherits that work.

Cons:
- This is totally untried, and therefore a totally unknown amount of work.
- It is all or nothing in that there is no incremental path to get the
CI scripts working outside of CI.
- We have to rewrite a bunch of working ansible code in bash which IMO
is the wrong direction for a modern CI system.


2. Actively work on making tripleo-ci consume the ansible work in
tripleo-quickstart and the external role ecosystem around it.

Pros:
- This could be done incrementally, replacing a single function from
tripleo.sh with an invocation of tripleo-quickstart that performs that
function instead.
- We would be able to pull in a lot of extra functionality via these
external roles for free(ish).

Cons:
- Similarly unknown amount of work to completely switch.
- CI development would be done in multiple repos, though each would have
discrete and well defined functionality.


Personally, I don't think we should do anything drastic with CI until
after we release Newton, so we don't add any risk of impacting new
features that haven't landed yet. I do think it would be a good goal for
Ocata to have a CI system in TripleO that is consumable outside of
TripleO. In any case, this email is simply to garner feedback if other's
think this is a worthy thing to pursue and opinions on how we can get there.


[1]
https://github.com/redhat-openstack?utf8=%E2%9C%93&query=ansible-role-tripleo
(note not all of these are actively used/developed)
[2] https://github.com/rdo-infra/weirdo





More information about the OpenStack-dev mailing list