Uploaded image for project: 'Red Hat OpenStack Services on OpenShift'
  1. Red Hat OpenStack Services on OpenShift
  2. OSPRH-25458

Ansible Execution Environment build fails on RHEL9 due to epel-release in bindep.txt

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Undefined Undefined
    • None
    • None
    • None
    • Team OS Migrate Sprint 14
    • 1
    • Critical

      Problem

      The bindep.txt (we renamed it from binddep.txt) file in the vmware-migration-kit collection includes epel-release as a dependency. This causes Ansible Execution Environment builds to fail when using RHEL9-based images such as registry.redhat.io/ansible-automation-platform-25/ee-minimal-rhel9:latest.

      Error Message

      ansible-builder build --no-cache --tag rhospvmt-ee:latest -v 3
      
      error: No package matches 'epel-release'
      Error: building at STEP "RUN /output/scripts/assemble": while running runtime: exit status 1
      

      Technical Details: Ansible Builder Introspection Phase

      When ansible-builder builds an Execution Environment, it performs an introspection phase that automatically discovers and merges dependencies from all collections specified in requirements.yml.

      Build Process

      1. Galaxy Stage: Downloads collections from Automation Hub/Galaxy to /usr/share/ansible/collections
      2. Builder Stage: Runs introspect.py which:

      • Scans each collection for bindep.txt, requirements.txt, and meta/ee-requirements.txt
      • Merges user-provided dependencies with collection dependencies
      • Writes merged files to /tmp/src/bindep.txt and /tmp/src/requirements.txt
        3. Assemble Stage: Runs /output/scripts/assemble which:
      • Parses merged bindep.txt using bindep tool
      • Installs all packages via microdnf

      Containerfile Snippet (generated by ansible-builder)

      # Builder stage
      RUN $PYCMD /output/scripts/introspect.py introspect \
          --sanitize \
          --user-pip=requirements.txt \
          --user-bindep=bindep.txt \
          --write-bindep=/tmp/src/bindep.txt \
          --write-pip=/tmp/src/requirements.txt
      RUN /output/scripts/assemble
      

      Root Cause

      The ee-minimal-rhel9 base image does not have EPEL repositories configured, and epel-release is not available in standard RHEL repositories.

      Impact

      This issue blocks users from building Ansible Execution Environments with the os_migrate.vmware_migration_kit collection using standard AAP base images.

      Workaround

      Users can work around this by adding EPEL installation in additional_build_steps.prepend_base in their execution-environment.yml:

      additional_build_steps:   prepend_base:     - "RUN curl -sLo /tmp/epel-release.rpm https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm && rpm -ivh /tmp/epel-release.rpm && rm -f /tmp/epel-release.rpm"
      

      However, this workaround should not be necessary.

              rhn-engineering-mbultel mathieu bultel
              pnavarro@redhat.com Pedro Navarro Perez
              rhos-dfg-migrations
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

                Created:
                Updated:
                Resolved: