Skip to content

Split EL9/EL10-specific packages for RHEL 10 support#1708

Open
fonta-rh wants to merge 1 commit into
metal3-io:mainfrom
fonta-rh:fix-rhel10-packages
Open

Split EL9/EL10-specific packages for RHEL 10 support#1708
fonta-rh wants to merge 1 commit into
metal3-io:mainfrom
fonta-rh:fix-rhel10-packages

Conversation

@fonta-rh

@fonta-rh fonta-rh commented Jul 16, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Move genisoimage and python3-bcrypt from centos.common.packages to a new centos.el9 section
  • Add centos.el10 section with xorriso (replaces genisoimage on EL10)
  • Add version-gated install tasks in main.yml, following the existing Ubuntu jammy/noble pattern

Why

RHEL 10 / CentOS Stream 10 drops two packages from the common list:

  • genisoimage: replaced by xorriso, which provides a mkisofs compatibility wrapper
  • python3-bcrypt: not available in RHEL 10 base repos. It's a soft dependency of passlib (used for password hashing) and not required — passlib has other hash backends

Without this change, dnf install fails on EL10 hosts because these packages don't exist.

Context

Found while adding RHEL 10 provisioning host support to openshift-metal3/dev-scripts#1922. Currently worked around with sed patches in dev-scripts' 01_install_requirements.sh — this PR fixes the issue at the source.

Test plan

  • Verify EL9 CI still installs genisoimage and python3-bcrypt (no regression)
  • Verify EL10 installs xorriso instead of genisoimage and skips python3-bcrypt
  • YAML lint passes

🤖 Generated with Claude Code

@metal3-io-bot

Copy link
Copy Markdown
Collaborator

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by:
Once this PR has been reviewed and has the lgtm label, please assign smoshiur1237 for approval. For more information see the Code Review Process.

The full list of commands accepted by this bot can be found here.

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@metal3-io-bot

Copy link
Copy Markdown
Collaborator

Hi @fonta-rh. Thanks for your PR.

I'm waiting for a metal3-io member to verify that this patch is reasonable to test. If it is, they should reply with /ok-to-test on its own line. Until that is done, I will not automatically test new commits in this PR, but the usual testing commands by org members will still work.

Regular contributors should join the org to skip this step.

Once the patch is verified, the new status will be reflected by the ok-to-test label.

I understand the commands that are listed here.

Details

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository.

@metal3-io-bot metal3-io-bot added needs-ok-to-test Indicates a PR that requires an org member to verify it is safe to test. size/S Denotes a PR that changes 10-29 lines, ignoring generated files. labels Jul 16, 2026
@Sunnatillo

Copy link
Copy Markdown
Member

/ok-to-test

@metal3-io-bot metal3-io-bot added ok-to-test Indicates a non-member PR verified by an org member that is safe to test. and removed needs-ok-to-test Indicates a PR that requires an org member to verify it is safe to test. labels Jul 16, 2026
@Sunnatillo

Copy link
Copy Markdown
Member

/copilot-review

@metal3-io-bot
metal3-io-bot requested a review from Copilot July 16, 2026 09:59
@metal3-io-bot

Copy link
Copy Markdown
Collaborator

Copilot code review has been requested by @Sunnatillo. Please allow a few moments for the review to be added.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Pull request overview

This PR updates the packages_installation Ansible role to support RHEL/CentOS Stream 10 by splitting EL9- vs EL10-specific RPM dependencies so dnf install doesn’t fail on EL10 due to removed packages.

Changes:

  • Removes genisoimage and python3-bcrypt from the CentOS/RHEL common package list and moves them into an el9-specific list.
  • Adds an el10-specific package list that installs xorriso (as the EL10 replacement for genisoimage).
  • Adds version-gated Ansible tasks to install the new EL9/EL10 package lists.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 2 comments.

File Description
vm-setup/roles/packages_installation/tasks/main.yml Adds EL9/EL10 conditional package installation tasks for RedHat-family hosts.
vm-setup/roles/packages_installation/defaults/main.yml Splits CentOS/RHEL packages into common, el9, and el10 sections (plus existing pip3).

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread vm-setup/roles/packages_installation/tasks/main.yml
Comment thread vm-setup/roles/packages_installation/tasks/main.yml
@Sunnatillo

Copy link
Copy Markdown
Member

/test metal3-centos-e2e-integration-test-release-1-13

RHEL 10 / CentOS Stream 10 changes two packages from the common list:

- genisoimage: replaced by xorriso (provides mkisofs compatibility)
- python3-bcrypt: not available in base repos; soft dependency of passlib,
  not required for operation

Move these to version-gated el9/el10 subsections (matching the existing
Ubuntu jammy/noble pattern) so the role installs the right packages per
OS major version.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Pablo Fontanilla <pfontani@redhat.com>
@fonta-rh
fonta-rh force-pushed the fix-rhel10-packages branch from 34739a3 to aa58be1 Compare July 17, 2026 04:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ok-to-test Indicates a non-member PR verified by an org member that is safe to test. size/S Denotes a PR that changes 10-29 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants