kayobe/kayobe
Mark Goddard 5bf96da187 Performance: avoid set_fact in Kolla Ansible host vars
When generating host variable files for Kolla Ansible, we have some
heavy usage of set_fact to set variables for network interfaces, in a
play targeted at all hosts. There are also tasks using the fail action
plugin to perform verification.

At scale this has a significant impact, due to the number of tasks
executed against all hosts. These tasks are executed at the beginning of
many commands, so the scope is broad.  There is also some tricky logic
involved, which is difficult to express in Ansible/Jinja.

This change replaces the use of set_fact with a custom Ansible action
plugin. The plugin executes locally on the Ansible controller, and
returns a dict of Ansible facts to set for each host. The plugin is
executed once for each overcloud host, and returns all relevant facts.
The plugin also performs verification. Extraction into a Python module
allows for unit testing.

This has been shown to have a significant improvement on execution time,
particularly as the number of hosts reaches 100 or more.

Story: 2007993
Task: 40641

Change-Id: I443da1ae05fcca2d7d8dff7db563eeda37e9f502
2020-10-01 09:49:28 +00:00
..
cli Move dnf.yml earlier in host configure workflow 2020-09-11 19:59:02 +00:00
cmd Stop to use the __future__ module. 2020-06-02 20:19:56 +02:00
plugins Performance: avoid set_fact in Kolla Ansible host vars 2020-10-01 09:49:28 +00:00
tests Performance: avoid set_fact in Kolla Ansible host vars 2020-10-01 09:49:28 +00:00
__init__.py Add kayobe python module with CLI 2017-02-28 16:17:54 +00:00
ansible.py Remove support for CentOS 7 and Python 2 2020-05-28 10:25:51 +01:00
exception.py Support installing galaxy roles from kayobe-config 2018-05-21 16:00:57 +01:00
kolla_ansible.py Support custom Ansible configuration 2020-03-31 19:03:00 +01:00
utils.py Remove six 2020-05-28 10:30:07 +01:00
vault.py Python 3: fix Ansible Vault password helper 2020-05-28 10:57:00 +01:00
version.py Build release notes using reno 2018-05-04 15:11:23 +01:00