On Mon, Aug 1, 2016 at 11:21 AM, Arie Bregman <abregman@redhat.com> wrote:
Hi,

I would like to start a discussion on the overlap between tools we
have for deploying and testing TripleO (RDO & RHOSP) in CI.

Several months ago, we worked on one common framework for deploying
and testing OpenStack (RDO & RHOSP) in CI. I think you can say it
didn't work out well, which eventually led each group to focus on
developing other existing/new tools.

What we have right now for deploying and testing
--------------------------------------------------------
=== Component CI, Gating ===
I'll start with the projects we created, I think that's only fair :)

* Ansible-OVB[1] - Provisioning Tripleo heat stack, using the OVB project.

* Ansible-RHOSP[2] - Product installation (RHOSP). Branch per release.

* Octario[3] - Testing using RPMs (pep8, unit, functional, tempest,
csit) + Patching RPMs with submitted code.

=== Automation, QE ===
* InfraRed[4] - provision install and test. Pluggable and modular,
allows you to create your own provisioner, installer and tester.

As far as I know, the groups is working now on different structure of
one main project and three sub projects (provision, install and test).

=== RDO ===
I didn't use RDO tools, so I apologize if I got something wrong:

* About ~25 micro independent Ansible roles[5]. You can either choose
to use one of them or several together. They are used for
provisioning, installing and testing Tripleo.

* Tripleo-quickstart[6] - uses the micro roles for deploying tripleo
and test it.

As I said, I didn't use the tools, so feel free to add more
information you think is relevant.

=== More? ===
I hope not. Let us know if are familiar with more tools.

Conclusion
--------------
So as you can see, there are several projects that eventually overlap
in many areas. Each group is basically using the same tasks (provision
resources, build/import overcloud images, run tempest, collect logs,
etc.)

Personally, I think it's a waste of resources. For each task there is
at least two people from different groups who work on exactly the same
task. The most recent example I can give is OVB. As far as I know,
both groups are working on implementing it in their set of tools right
now.

On the other hand, you can always claim: "we already tried to work on
the same framework, we failed to do it successfully" - right, but
maybe with better ground rules we can manage it. We would defiantly
benefit a lot from doing that.

What's next?
----------------
So first of all, I would like to hear from you if you think that we
can collaborate once again or is it actually better to keep it as it
is now.

+1 on collaboration, with that being said I can't support forcing groups to use one tool or another.
Forcing the issue only builds resentment across teams.
 

If you agree that collaboration here makes sense, maybe you have ideas
on how we can do it better this time.

I think that setting up a meeting to discuss the right architecture
for the project(s) and decide on good review/gating process, would be
a good start.

Not sure why upstream tripleo is left out of this discussion.  Ideally if possible we all need to be using
upstream CI tools where we can, and if you can't use upstream tools do your best to move the tool(s) upstream.
 

Please let me know what do you think and keep in mind that this is not
about which tool is better!. As you can see I didn't mention the time
it takes for each tool to deploy and test, and also not the full
feature list it supports.
If possible, we should keep it about collaborating and not choosing
the best tool. Our solution could be the combination of two or more
tools eventually (tripleo-red, infra-quickstart? :D )

"You may say I'm a dreamer, but I'm not the only one. I hope some day
you'll join us and the infra will be as one" :)

Thanks Arie!
 

[1] https://github.com/redhat-openstack/ansible-ovb
[2] https://github.com/redhat-openstack/ansible-rhosp
[3] https://github.com/redhat-openstack/octario
[4] https://github.com/rhosqeauto/InfraRed
[5] https://github.com/redhat-openstack?utf8=%E2%9C%93&query=ansible-role
[6] https://github.com/openstack/tripleo-quickstart