Ahoy folks, I think it's time we come up with some basic rules/patterns on where code lands when it comes to OpenStack related Ansible roles and as we convert/export things. There was a recent proposal to create an ansible-role-tempest[0] that would take what we use in tripleo-quickstart-extras[1] and separate it for re-usability by others. So it was asked if we could work with the openstack-ansible team and leverage the existing openstack-ansible-os_tempest[2]. It turns out we have a few more already existing roles laying around as well[3][4].
What I would like to propose is that we as a community come together to agree on specific patterns so that we can leverage the same roles for some of the core configuration/deployment functionality while still allowing for specific project specific customization. What I've noticed between all the project is that we have a few specific core pieces of functionality that needs to be handled (or skipped as it may be) for each service being deployed. 1) software installation 2) configuration management 3) service management 4) misc service actions Depending on which flavor of the deployment you're using, the content of each of these may be different. Just about the only thing that is shared between them all would be the configuration management part. To that, I was wondering if there would be a benefit to establishing a pattern within say openstack-ansible where we can disable items #1 and #3 but reuse #2 in projects like kolla/tripleo where we need to do some configuration generation. If we can't establish a similar pattern it'll make it harder to reuse and contribute between the various projects. In tripleo we've recently created a bunch of ansible-role-tripleo-* repositories which we were planning on moving the tripleo specific tasks (for upgrades, etc) to and were hoping that we might be able to reuse the upstream ansible roles similar to how we've previously leverage the puppet openstack work for configurations. So for us, it would be beneficial if we could maybe help align/contribute/guide the configuration management and maybe misc service action portions of the openstack-ansible roles, but be able to disable the actual software install/service management as that would be managed via our ansible-role-tripleo-* roles. Is this something that would be beneficial to further discuss at the PTG? Anyone have any additional suggestions/thoughts? My personal thoughts for tripleo would be that we'd have tripleo-ansible calls openstack-ansible-<project> for core config but package/service installation disabled and calls ansible-role-tripleo-<project> for tripleo specific actions such as opinionated packages/service configuration/upgrades. Maybe this is too complex? But at the same time, do we need to come up with 3 different ways to do this? Thanks, -Alex [0] https://review.openstack.org/#/c/589133/ [1] http://git.openstack.org/cgit/openstack/tripleo-quickstart-extras/tree/roles/validate-tempest [2] http://git.openstack.org/cgit/openstack/openstack-ansible-os_tempest/ [3] http://git.openstack.org/cgit/openstack/kolla-ansible/tree/ansible/roles/tempest [4] http://git.openstack.org/cgit/openstack/ansible-role-tripleo-tempest __________________________________________________________________________ OpenStack Development Mailing List (not for usage questions) Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev