Skip to content

Run ALTS i686 tests in native i386 images on x86_64 workers - #47

Merged
anfimovdm merged 1 commit into
masterfrom
al-alts-i386-docker-images
Oct 27, 2026
Merged

anfimovdm merged 1 commit into
masterfrom
al-alts-i386-docker-images

Conversation

@anfimovdm

Copy link
Copy Markdown
Contributor

Summary

i686 tests on x86_64 workers currently run in the default x86_64 image, because no docker_image_overrides are configured in prod. The i686 packages end up installed on a multilib x86_64 system. There, dnf refuses to pull an i686 dependency when the x86_64 package of the same name has a different version, so tests fail with errors like:

package infiniband-diags-1:61.0-2.el10_2.i686 from AlmaLinux-10-i686-96041-br requires libibumad(x86-32) = 1:61.0-2.el10_2, but none of the providers can be installed
  - libibumad-1:61.0-2.el10_2.i686 from AlmaLinux-10-i686-96041-br  does not belong to a distupgrade repository
  - conflicting requests

I reproduced this in an x86_64 almalinux:10 container. The same install succeeds in the native quay.io/almalinuxautobot/almalinux:10 image for linux/386.

Changes

  • inventories/alts/group_vars/celery_x86_64.yml: new group vars that set docker_image_overrides for AlmaLinux 8, 9 and 10 on linux/386, using quay.io/almalinuxautobot/almalinux.
  • inventories/alts/hosts.yml: new celery_x86_64 child group under celery, so only x86_64 workers get the override.
  • playbooks/templates/alts_service_config.yaml.j2: docker_image_overrides is now rendered as block YAML instead of a one-line JSON list. Versions are forced to strings.

Notes

  • EL8 and EL9 i686 tests also move to i386 images, because prod had no override before. Their results may change.
  • To deploy, add the same celery_x86_64 group to the prod inventory, then run playbooks/alts_celery.yml --limit celery_x86_64 --tags celery-config. Restart alts-celery on those hosts afterwards.
  • Workers keep pulled images locally (keep_locally = true). If a worker still runs i686 tests on x86_64, run docker rmi on that worker.

Testing

  • ansible ... -m debug -a var=docker_image_overrides: defined only for x86_64 workers, undefined for aarch64, s390x and ppc64le.
  • Rendered the template block with the template module and parsed it back with from_yaml. The data matches the group vars.
  • --diff --check against the prod workers shows only the new docker_image_overrides block in celery.yaml.

🤖 Generated with Claude Code

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.
@anfimovdm
anfimovdm merged commit 186f60f into master Oct 27, 2026
1 check failed
@anfimovdm
anfimovdm deleted the al-alts-i386-docker-images branch October 27, 2026 16:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant