From 7132a967a1434bfe13e926916fc2e1ad1c955629 Mon Sep 17 00:00:00 2001 From: Daniil Anfimov Date: Tue, 27 Oct 2026 18:05:32 +0200 Subject: [PATCH] Run ALTS i686 tests in native i386 images on x86_64 workers Without an override the Docker runner falls back to the x86_64 image, so i686 packages get installed on a multilib system and dnf fails to pull i686 dependencies whose x86_64 counterpart has a different version (e.g. infiniband-diags/libibumad on AlmaLinux 10). Add a celery_x86_64 group with docker_image_overrides pointing AlmaLinux 8-10 linux/386 to quay.io/almalinuxautobot/almalinux, and render the overrides as block YAML in the Celery config. --- inventories/alts/group_vars/celery_x86_64.yml | 9 +++++++++ inventories/alts/hosts.yml | 4 ++++ playbooks/templates/alts_service_config.yaml.j2 | 8 +++++++- 3 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 inventories/alts/group_vars/celery_x86_64.yml diff --git a/inventories/alts/group_vars/celery_x86_64.yml b/inventories/alts/group_vars/celery_x86_64.yml new file mode 100644 index 0000000..32600c2 --- /dev/null +++ b/inventories/alts/group_vars/celery_x86_64.yml @@ -0,0 +1,9 @@ +--- + +# i686 tasks run on x86_64 workers, pull native i386 images for them +# instead of falling back to x86_64 ones (no multilib depsolving issues) +docker_image_overrides: + - dist_name: almalinux + dist_versions: ['8', '9', '10'] + platform: linux/386 + image: quay.io/almalinuxautobot/almalinux diff --git a/inventories/alts/hosts.yml b/inventories/alts/hosts.yml index 088f335..b5ffaea 100644 --- a/inventories/alts/hosts.yml +++ b/inventories/alts/hosts.yml @@ -8,6 +8,10 @@ all: hosts: scheduler01: celery: + children: + celery_x86_64: + hosts: + x86_64-node01: hosts: x86_64-node01: celery_queues: diff --git a/playbooks/templates/alts_service_config.yaml.j2 b/playbooks/templates/alts_service_config.yaml.j2 index 681d261..c33e826 100644 --- a/playbooks/templates/alts_service_config.yaml.j2 +++ b/playbooks/templates/alts_service_config.yaml.j2 @@ -117,7 +117,13 @@ cleanup_yum_conf_docs_settings: {{ cleanup_yum_conf_docs_settings | bool }} ignore_ansible_install_errors: {{ ignore_ansible_install_errors | bool }} {% endif %} {% if docker_image_overrides is defined %} -docker_image_overrides: {{ docker_image_overrides | to_json }} +docker_image_overrides: +{% for override in docker_image_overrides %} + - dist_name: "{{ override.dist_name }}" + dist_versions: {{ override.dist_versions | map('string') | list | to_json }} + platform: "{{ override.platform }}" + image: "{{ override.image }}" +{% endfor %} {% endif %} {% if worker_type == 'opennebula' %} tests_base_dir: "{{ opennebula_tests_base_dir }}"