diff options
| author | Michal Arbet <michal.arbet@ultimum.io> | 2024-12-07 17:33:55 +0100 |
|---|---|---|
| committer | Michal Arbet <michal.arbet@ultimum.io> | 2024-12-07 20:46:31 +0100 |
| commit | 0298699a4b33bf810862bf61691f9c127a1ea3c2 (patch) | |
| tree | 9e47bdb6f3dc7c3d348c5b3e104f3e96b5fc9d1c /tests | |
| parent | ecdd7462aa82e06bd89a7eaf3d13ec8d9ab67d79 (diff) | |
| download | kolla-ansible-0298699a4b33bf810862bf61691f9c127a1ea3c2.tar.gz kolla-ansible-0298699a4b33bf810862bf61691f9c127a1ea3c2.zip | |
[CI] Fix testing inventory template due Ansible 2.16.14 breakage
Ansible 2.16.14 includes a fix for CVE-2024-11079 [1], which results
in the following error:
jinja2.exceptions.UndefinedError:
'ansible.vars.hostvars.HostVarsVars
object' has no attribute 'ansible_host'
This issue occurs because Ansible now includes `localhost` in
`hostvars` without the `ansible_host` variable set, which
unexpectedly breaks our test inventory rendering.
This patch adds a filter to exclude `localhost`
during the rendering process, as it is irrelevant for our purposes.
[1] https://github.com/ansible/ansible/pull/84353
Change-Id: Ie7ae47e5a624da31cf6cc5cd3c9239450487b8ed
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/templates/inventory.j2 | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/tests/templates/inventory.j2 b/tests/templates/inventory.j2 index c0b48ce73..b5aadacd6 100644 --- a/tests/templates/inventory.j2 +++ b/tests/templates/inventory.j2 @@ -11,7 +11,7 @@ {{ host }} ansible_host={{ hostvars[host]['ansible_host'] }} {% endfor %} {% else %} -{% for host in hostvars %} +{% for host in hostvars | reject('equalto', 'localhost') %} {{ host }} ansible_host={{ hostvars[host]['ansible_host'] }} {% endfor %} {% endif %} @@ -31,28 +31,28 @@ control {{ host }} ansible_host={{ hostvars[host]['ansible_host'] }} {% endfor %} {% else %} -{% for host in hostvars %} +{% for host in hostvars | reject('equalto', 'localhost') %} {{ host }} ansible_host={{ hostvars[host]['ansible_host'] }} {% endfor %} {% endif %} [storage] -{% for host in hostvars %} +{% for host in hostvars | reject('equalto', 'localhost') %} {{ host }} ansible_host={{ hostvars[host]['ansible_host'] }} {% endfor %} [monitoring] -{% for host in hostvars %} +{% for host in hostvars | reject('equalto', 'localhost') %} {{ host }} ansible_host={{ hostvars[host]['ansible_host'] }} {% endfor %} [deployment] -{% for host in hostvars %} +{% for host in hostvars | reject('equalto', 'localhost') %} {{ host }} ansible_host={{ hostvars[host]['ansible_host'] }} {% endfor %} {% if scenario == 'cells' %} -{% for host in hostvars %} +{% for host in hostvars | reject('equalto', 'localhost') %} {% set cell_name = 'cell' ~ loop.index %} [{{ cell_name }}] {{ host }} ansible_host={{ hostvars[host]['ansible_host'] }} mariadb_shard_id={{ loop.index0 % 2 }} @@ -123,7 +123,7 @@ storage # In CI we want Pacemaker to run on primary and secondary (to test with HA). [hacluster] -{% for host in hostvars %} +{% for host in hostvars | reject('equalto', 'localhost') %} {% if host in ['primary', 'secondary'] %} {{ host }} ansible_host={{ hostvars[host]['ansible_host'] }} {% endif %} |
