Skip to content

Support EL10 in beaker role - #1976

Merged
Odilhao merged 1 commit into
theforeman:masterfrom
Odilhao:add-support-pulp-el10
Aug 3, 2026
Merged

Support EL10 in beaker role#1976
Odilhao merged 1 commit into
theforeman:masterfrom
Odilhao:add-support-pulp-el10

Conversation

@Odilhao

@Odilhao Odilhao commented Aug 3, 2026

Copy link
Copy Markdown
Member

Summary

Ports the EL10 acceptance testing capability from theforeman/puppet-pulpcore#411 / theforeman/puppet-pulpcore#412 (now on master) into forklift's real pulpcore pipeline (pipelines/pulpcore/{01-boxes,02-install,03-tests}.yml), which is what runs in Jenkins at pulpcore-nightly-rpm-pipeline.

  • pipelines/pulpcore/03-tests.yml: on EL10, override BEAKER_PUPPET_COLLECTION to openvox8. Puppet doesn't publish an EL10 release RPM yet (puppet8-release-el-10.noarch.rpm 404s), but OpenVox does (openvox8-release-el-10.noarch.rpm). EL9 and other OSes are unaffected.
  • roles/beaker/tasks/main.yml:
    • Extended the existing EL9 "enable CRB" task to also cover EL10 (needed for build deps like libyaml-devel). No ruby-module-enable step was needed for EL10 since it ships Ruby ≥3.2 by default and dropped DNF modularity.
    • Added an EL10-only fix for a podman/beaker-docker incompatibility discovered while validating this locally: podman's newer Docker-compat API (confirmed on podman 6.0.2, shipped by CentOS Stream 10) reports HostConfig.NetworkMode as the generic "bridge", while the actual default network it attaches containers to is still named "podman". beaker-docker 3.1.2 looks up NetworkSettings.Networks[NetworkMode] to get the container IP, so that key mismatch crashes with undefined method '[]' for nil. Renaming podman's default network to "bridge" (via a containers.conf.d drop-in) makes the two agree. Confirmed EL9/AlmaLinux9 production runs don't hit this (older podman doesn't have the mismatch), so it's gated to distribution_major_version == "10" only.

No changes were needed to 01-boxes.yml — the centos10-stream box (centos/stream10) already exists in vagrant/boxes.d/00-centos.yaml, and 03-tests.yml's existing beaker_os: "{{ pipeline_os.replace('-stream', '') }}" correctly produces centos10, matching beaker-hostgenerator's centos10-64 platform.

No change was needed for the Redis→Valkey test assertion — that's already fixed in puppet-pulpcore (spec/acceptance/basic_spec.rb, OS-conditional on valkey vs redis, from theforeman/puppet-pulpcore#411 theforeman/puppet-pulpcore#412 and picked up automatically since roles/beaker/tasks/main.yml clones the module fresh from theforeman/puppet-pulpcore at HEAD by default.

Nightly is tested against the real stagingyum.theforeman.org staging repo for EL10 (no Copr staging override needed, unlike puppet-pulpcore's CI, since forklift's pipeline isn't gated the same way GitHub Actions is).

Test plan

  • Ran ansible-playbook pipelines/pulpcore.yml -e pipeline_version=nightly -e pipeline_os=centos10-stream -e pipeline_type=pulpcore -e pipeline_action=pulpcore -e expected_version='' locally end-to-end (boxes → install → acceptance tests) — passed with failed=0.
  • Confirmed EL9 (almalinux9) production Jenkins runs are unaffected — the podman network fix and BEAKER_PUPPET_COLLECTION override are both gated to distribution_major_version == "10".

🤖 Generated with Claude Code

Comment thread pipelines/pulpcore/03-tests.yml Outdated

@ekohl ekohl left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks like this should say as the commit message "support EL 10 in Beaker role". Other than that, this looks ok to me.

Comment thread roles/beaker/tasks/main.yml
Extends the beaker role's acceptance testing support to EL10
(CentOS Stream 10):

- Enable CRB on EL10, needed for build deps like libyaml-devel.
- Default BEAKER_PUPPET_COLLECTION to openvox8, since forklift
  doesn't test any collection other than OpenVox right now.
- Work around a podman/beaker-docker incompatibility on EL10:
  podman's newer Docker-compat API reports HostConfig.NetworkMode
  as the generic "bridge" while its actual default network is
  still named "podman", which crashes beaker-docker's
  NetworkSettings.Networks lookup. Renaming podman's default
  network to "bridge" before it starts makes the two agree; EL9
  doesn't hit this mismatch and is left untouched.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@Odilhao
Odilhao force-pushed the add-support-pulp-el10 branch from 179d356 to da374d3 Compare August 3, 2026 18:27
@Odilhao
Odilhao merged commit 56203b6 into theforeman:master Aug 3, 2026
8 checks passed
@ekohl ekohl changed the title Add EL10 (CentOS Stream 10) acceptance testing to pulpcore pipeline Support EL10 in beaker role Aug 3, 2026
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.

3 participants