Add a README
This commit is contained in:
parent
a6ed9873f3
commit
6275491e6e
92
README.rst
Normal file
92
README.rst
Normal file
@ -0,0 +1,92 @@
|
||||
OpenStack-Ansible testing
|
||||
=========================
|
||||
|
||||
This is a PoC for centralizing the testing within OpenStack-Ansible.
|
||||
Aiming to move out the common pieces so that changes that affect
|
||||
testing don't have to occur in every single repository.
|
||||
This allows you to run the common set of plays based on your requirements,
|
||||
and will work based on the inventory specs.
|
||||
The aim is to avoid (as much as possible) the requirement to change the same
|
||||
thing in 50 different places.
|
||||
|
||||
Steps so far:
|
||||
|
||||
#. Move out playbooks for role installs
|
||||
#. Move out variables to become a ``test-default`` vars.
|
||||
#. Genericize rolename calls
|
||||
|
||||
General notes
|
||||
~~~~~~~~~~~~~
|
||||
|
||||
I've patched some issues that I've put upstream (Mostly for nova):
|
||||
|
||||
| https://review.openstack.org/#/c/321472/
|
||||
| https://review.openstack.org/#/c/321148/
|
||||
|
||||
These are incorporated in the patches I have for the repositories.
|
||||
|
||||
Discussion points
|
||||
~~~~~~~~~~~~~~~~~
|
||||
|
||||
Variable locations/precendence
|
||||
------------------------------
|
||||
|
||||
Currently using testing defaults as an include within the play files - this
|
||||
lives inside the generic repository (this one)
|
||||
Using a ``{rolename}-overrides.yml`` within each role's repository we can set
|
||||
various vars that are non-default (these are pretty minimal though for the
|
||||
roles I've done. ``nova/glance/keystone/swift``).
|
||||
Open to suggestions/discussion.
|
||||
|
||||
Rolename includes
|
||||
-----------------
|
||||
|
||||
To use a generic keystone playbook for testing (as an example), we need to set
|
||||
the rolename to be a default of ``os_keystone`` (this is how we specify it
|
||||
in ``ansible-role-requirements``).
|
||||
However for keystone testing we need it to be ``openstack-ansible-os_keystone``,
|
||||
so there are 2 options:
|
||||
|
||||
#. We set the the ``ansible-role-requirements`` to clone ALL repos to
|
||||
``openstack-ansible-x`` and code the rolenames as such.
|
||||
|
||||
#. We have a var per repo to specify its own rolename
|
||||
(e.g. ``openstack-ansible-os_keystone``) and use the shortname as a default.
|
||||
|
||||
I've gone with option 2 for the purposes of this PoC
|
||||
Open to other suggestions/discussion.
|
||||
|
||||
Inventory management
|
||||
--------------------
|
||||
|
||||
For swift I have split out the ``group/host_vars`` so that very little is in the
|
||||
inventory, I think this is the way forward.
|
||||
This isn't generic to roles - so isn't really covered in this, but I'd like a uniform
|
||||
method of preparing hosts.
|
||||
|
||||
Method of running plays
|
||||
-----------------------
|
||||
|
||||
There was an idea to simply run the ``test.yml`` from the generic repo
|
||||
which will call all the appropriate repos. This will fail if the requirements
|
||||
repositories don't exist though, regardless of whether they are used.
|
||||
For example, rabbitmq isn't used by swift, but you would need to download the
|
||||
role just to be able to ignore the rabbitmq role.
|
||||
I've gone with the alternative, for the purposes of this PoC, which is to specify
|
||||
in the role repositories, which generic playbooks to run.
|
||||
|
||||
I think the decisions made so far are solid but feel free to give ideas/discuss etc.
|
||||
Here are the 4 repositories I have working with this method, so you can see the
|
||||
patch required to get it working on each repository:
|
||||
|
||||
| Swift_
|
||||
| Keystone_
|
||||
| Glance_
|
||||
| Nova_
|
||||
|
||||
.. _Swift: http://github.com/andymcc/openstack-ansible-os_swift/
|
||||
.. _Keystone: http://github.com/andymcc/openstack-ansible-os_keystone/
|
||||
.. _Glance: http://github.com/andymcc/openstack-ansible-os_glance/
|
||||
.. _Nova: http://github.com/andymcc/openstack-ansible-os_nova/
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user