[Metal] Refactor the Ansible roles
Issue
The code in this module has been mostly untouched since initial development. It is functional and well-tested, but the openstack/kolla-deploy
role is somewhat messy, and the config workflow could stand to be improved as well. There are no real blockers in terms of cleaning this module up.
Proposal
openstack/kolla-deploy
role (and other roles)
The - Narrow the scope by moving Octavia-specific code into its own role(s).
- Use a non-root user, and elevate privileges as required.
- Rename the
openstack/kolla-deploy
role to something more descriptive, such asopenstack/deploy-core
. - Refactor all roles so that projects (Octavia, Magnum, Designate, etc) can be configured and (re)deployed individually using tags.
globals.yml
file
Kolla's Currently, we have the user populate Kolla's globals.yml
file themselves, and then the Ansible role copies it to the target host. This is a pretty poor workflow, as this configuration file is very large and there really are only a handful of values that need to be configured in a very specific way.
Instead, it would make more sense to expose all user configuration values in vars/main.yml
, and then simply use Ansible's lineinfile
module as needed to edit globals.yml
on the target host. This would drastically simplify the user-facing configuration.