diff --git a/environments/manager/images.yml b/environments/manager/images.yml index 121605a..d2e349e 100644 --- a/environments/manager/images.yml +++ b/environments/manager/images.yml @@ -93,14 +93,10 @@ ceph_ansible_tag: "{{ '{{' }} ceph_version|default(manager_version) {{ '}}' }}" {% endif -%} ceph_ansible_image: "{{ '{{' }} docker_registry_ansible|default('registry.osism.tech') {{ '}}' }}/{{ images['ceph_ansible'] }}:{{ '{{' }} ceph_ansible_tag {{ '}}' }}" -{% if manager_version == 'latest' -%} -kolla_ansible_tag: "{{ '{{' }} openstack_version|default('2024.2') {{ '}}' }}" -{% else -%} {% if 'kolla_ansible' in versions -%} kolla_ansible_tag: "{{ versions['kolla_ansible'] }}" {% else -%} kolla_ansible_tag: "{{ '{{' }} openstack_version|default(manager_version) {{ '}}' }}" {% endif -%} -{% endif -%} kolla_ansible_image: "{{ '{{' }} docker_registry_ansible|default('registry.osism.tech') {{ '}}' }}/{{ images['kolla_ansible'] }}:{{ '{{' }} kolla_ansible_tag {{ '}}' }}" diff --git a/requirements.txt b/requirements.txt index cc46116..7d9d879 100644 --- a/requirements.txt +++ b/requirements.txt @@ -3,6 +3,7 @@ PyYAML==6.0.3 ansible==11.13.0 packaging==26.1 pwgen==0.8.2.post0 +pytest==9.0.3 python-gilt==1.2.3 requests==2.33.1 tabulate==0.10.0 diff --git a/tests/test_render_images_template.py b/tests/test_render_images_template.py new file mode 100644 index 0000000..42af385 --- /dev/null +++ b/tests/test_render_images_template.py @@ -0,0 +1,29 @@ +from collections import defaultdict +import os +import jinja2 + +REPO_ROOT = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) +TEMPLATE = "environments/manager/images.yml" + + +def render(manager_version, versions_extra=None): + versions = defaultdict(str, versions_extra or {}) + images = defaultdict(str) + env = jinja2.Environment(loader=jinja2.FileSystemLoader(REPO_ROOT)) + return env.get_template(TEMPLATE).render( + images=images, manager_version=manager_version, versions=versions + ) + + +def test_latest_with_pinned_kolla_ansible_uses_pinned_tag(): + # When manager_version=latest and kolla_ansible is present in versions + # (as it is once release/latest/base.yml is updated), the rendered + # tag must be the pinned value, not openstack_version. + result = render("latest", {"kolla_ansible": "0.20260328.0"}) + assert 'kolla_ansible_tag: "0.20260328.0"' in result + + +def test_pinned_release_with_kolla_ansible_uses_pinned_tag(): + # Regression: pinned manager_version must continue to use the pinned tag. + result = render("10.0.0", {"kolla_ansible": "0.20260328.0"}) + assert 'kolla_ansible_tag: "0.20260328.0"' in result diff --git a/tox.ini b/tox.ini index 5d6c4c7..988a92b 100644 --- a/tox.ini +++ b/tox.ini @@ -30,3 +30,4 @@ setenv = commands = python3 src/render-images.py cat images.yml + python3 -m pytest tests