Skip to content

Commit

Permalink
[CI] Fix testing inventory template due Ansible 2.16.14 breakage
Browse files Browse the repository at this point in the history
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] ansible/ansible#84353

Change-Id: Ie7ae47e5a624da31cf6cc5cd3c9239450487b8ed
(cherry picked from commit 0298699)
  • Loading branch information
keuko authored and priteau committed Dec 9, 2024
1 parent 0baa4df commit aa78abe
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 8 deletions.
2 changes: 1 addition & 1 deletion requirements.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@
collections:
- name: https://opendev.org/openstack/ansible-collection-kolla
type: git
version: stable/2023.1
version: unmaintained/2023.1
14 changes: 7 additions & 7 deletions tests/templates/inventory.j2
Original file line number Diff line number Diff line change
Expand Up @@ -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 %}
Expand All @@ -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 }}
Expand Down Expand Up @@ -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 %}
Expand Down

0 comments on commit aa78abe

Please sign in to comment.