[openstack-dev] [TripleO] Making TripleO CI easier to consume outside of TripleO CI
Wesley Hayutin
whayutin at redhat.com
Wed Jul 13 13:06:37 UTC 2016
On Wed, Jul 13, 2016 at 8:54 AM, Michal Pryc <mpryc at redhat.com> wrote:
> John,
>
> On Tue, Jul 12, 2016 at 9:39 PM, John Trowbridge <trown at redhat.com> wrote:
>
>> 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]
>>
>>
> Here is small sum of frameworks/tools to give you an idea what we are
> currently using to test RHOS components.
>
> To create Triple-O undercloud/overcloud we are using the:
>
> https://github.com/redhat-openstack/ansible-ovb
>
> And then to install RHOSP on existing Triple-O:
>
> https://github.com/redhat-openstack/ansible-rhosp
>
> Then to run CI in such environment we use octario which is our main tool
> to run different flavors of tests and it's separate CI tool to be ready
> with different provisioning frameworks.
>
> https://github.com/redhat-openstack/octario/
>
>
> In the simplistic environment to run simple tests we are using InfraRed to
> provision simple instance (without Triple-O):
>
> https://github.com/rhosqeauto/InfraRed
>
> And then we run octario in such environment to run actual tests.
>
> Ideally if the provisioning parts were common and we could reuse them.
> Currently we need to use yet another set of tools to be able to patch rpm's
> prior to running tests.
>
+1, agree
I think this part has been addressed w/
https://blueprints.launchpad.net/tripleo/+spec/tripleo-quickstart
>
> There was an idea planted by dsariel to move some of the playbooks into
> ansible-galaxy roles (possibly other teams had such idea as well), which I
> can see it's another +1 for going with tools currently developed by Wes as
> they are pretty separate and could be converted into ansible-galaxy, to be
> available across different use-cases, but then it would need to be well
> defined so the roles are not multiplied and we won't end up having similar
> roles.
>
>
We also considered ansible-galaxy and any of the ansible roles found in
github/redhat-openstack/ansible-role could be moved into galaxy. Galaxy
did not end up meeting our requirements for installing the roles and we
ended up using python setuptools. Some roles have specific config and
playbooks that need to be copied to a standard location and galaxy just did
not do that very well.
>
> best
> Michal Pryc
>
>
>
>> 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
>>
>>
>>
>> __________________________________________________________________________
>> OpenStack Development Mailing List (not for usage questions)
>> Unsubscribe:
>> OpenStack-dev-request at lists.openstack.org?subject:unsubscribe
>> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>>
>
>
> __________________________________________________________________________
> OpenStack Development Mailing List (not for usage questions)
> Unsubscribe: OpenStack-dev-request at lists.openstack.org?subject:unsubscribe
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20160713/9f6be61a/attachment.html>
More information about the OpenStack-dev
mailing list