Skip to content

The "psycopg[binary,pool] # extras needed to avoid install failure on macos-aarch64 " - requirement breaks creating a execution environment on s390x - there is no binary for s390x. #396

@johusta

Description

@johusta

Please confirm the following

  • I agree to follow this project's code of conduct.
  • I have checked the current issues for duplicates.
  • I understand that event-driven-ansible collection is open source software provided for free and that I might not receive a timely response.

Bug Summary

We are trying to create an execution-environment on s390x running on redhat 8 ansible-builder 3.1. It looks like you have an explicit requirement to use psycopg[pool,binary] for the ansible-eda collection? This is breaking creation of our execution-environment with the following message:

INFO: pip is looking at multiple versions of psycopg[binary,pool] to determine which version is compatible with other requirements. This could take a while.
Collecting psycopg[binary,pool] (from -r /tmp/src/requirements.txt (line 13)) - this looks to be in assemble build_wheels function

ERROR: Cannot install psycopg[binary,pool]==3.0, psycopg[binary,pool]==3.0.1, psycopg[binary,pool]==3.0.10, psycopg[binary,pool]==3.0.11, psycopg[binary,pool]==3.0.12, psycopg[binary,pool]==3.0.13, psycopg[binary,pool]==3.0.14, psycopg[binary,pool]==3.0.15, psycopg[binary,pool]==3.0.16, psycopg[binary,pool]==3.0.17, psycopg[binary,pool]==3.0.18, psycopg[binary,pool]==3.0.2, psycopg[binary,pool]==3.0.3, psycopg[binary,pool]==3.0.4, psycopg[binary,pool]==3.0.5, psycopg[binary,pool]==3.0.6, psycopg[binary,pool]==3.0.7, psycopg[binary,pool]==3.0.8, psycopg[binary,pool]==3.0.9, psycopg[binary,pool]==3.1, psycopg[binary,pool]==3.1.1, psycopg[binary,pool]==3.1.10, psycopg[binary,pool]==3.1.11, psycopg[binary,pool]==3.1.12, psycopg[binary,pool]==3.1.13, psycopg[binary,pool]==3.1.14, psycopg[binary,pool]==3.1.15, psycopg[binary,pool]==3.1.16, psycopg[binary,pool]==3.1.17, psycopg[binary,pool]==3.1.18, psycopg[binary,pool]==3.1.19, psycopg[binary,pool]==3.1.2, psycopg[binary,pool]==3.1.20, psycopg[binary,pool]==3.1.3, psycopg[binary,pool]==3.1.4, psycopg[binary,pool]==3.1.5, psycopg[binary,pool]==3.1.6, psycopg[binary,pool]==3.1.7, psycopg[binary,pool]==3.1.8, psycopg[binary,pool]==3.1.9, psycopg[binary,pool]==3.2.0, psycopg[binary,pool]==3.2.1, psycopg[binary,pool]==3.2.2, psycopg[binary,pool]==3.2.3 and psycopg[binary,pool]==3.2.4 because these package versions have conflicting dependencies.

after a lot of trial and error, I have not been able to find a way around this issue here is my last pass of working around this. I am a newbie to ansible so thank you for your help.

I also opened a jira to aap with no response I have opened a jira to ansible as well https://issues.redhat.com/browse/AAP-38550

execution-environment.yml

---
version: 3

build_arg_defaults:
    ANSIBLE_GALAXY_CLI_COLLECTION_OPTS: '--pre'

dependencies:
  ansible_core:
    package_pip: ansible-core
  ansible_runner:
    package_pip: ansible-runner
  galaxy: requirements.yml
  python: requirements.txt
  python_interpreter:
    package_system: python3.11
    python_path: /usr/bin/python3.11
  system: bindep.txt
  exclude:
    system:
      - openshift-clients

images:
  base_image:
          #name: registry.redhat.io/ansible-automation-platform-25/ee-supported-rhel8:1.0.0-862
          #name: registry.redhat.io/ansible-automation-platform-25/ee-supported-rhel9:1.0.0-861 
          name: registry.redhat.io/ansible-automation-platform-25/ee-supported-rhel9:1.0.0-906

options:
   package_manager_path: /usr/bin/microdnf


additional_build_files:
    - src: ./ansible.cfg
      dest: configs
    - src: ./_build/oc-s390.tar
      dest: configs

additional_build_steps:
  prepend_base:
    - RUN echo this is a prepend base command!
    - RUN microdnf install -y postgresql-devel
    - RUN microdnf install -y gcc
    - RUN microdnf install -y python3.11-devel
    - RUN pip3 install -U pip setuptools[core] wheel
    - RUN pip3 install -U psycopg2-binary
      #- RUN curl https://sh.rustup.rs -sSf | bash -s -- -y
      #- RUN source /home/runner/.cargo/env
    - ENV PATH /usr/include/python3.11:/usr/bin:/usr/local/bin:$PATH
    - RUN echo $PATH
  prepend_galaxy:
    - RUN mkdir -p /scratch/hcit/
    - ADD _build/configs/ansible.cfg /etc/ansible/ansible.cfg
    - RUN mkdir -p /usr/share/ansible/collections
    - RUN ls /scratch/hcit
    - RUN cat /etc/ansible/ansible.cfg
  prepend_final:
    - RUN whoami
  append_final:
    - RUN echo this is a post install command!
    - RUN ls -la /etc
  

bindep.txt


python3.11-devel [platform:rpm]
postgresql-devel [platform:rpm]
libpq [platform:rpm]
which [platform:rpm]
gcc [platform:rpm]
git [platform:rpm]
systemd [platform:rpm]
systemd-devel [platform:rpm]
systemd-libs [platform:rpm]

requirements.txt

psycopg2-binary>=2.9.10

requirements.yml

---
collections:
  - name: ansible.utils
  - name: redhat.openshift
  - name: redhat.openshift_virtualization

Environment

s390x

Red Hat Enterprise Linux release 8.10 (Ootpa)
cpe:/o:redhat:enterprise_linux:8::baseos

ansible-builder --version
3.1.0

Steps to reproduce

You would need a s390x LPAR running redhat
Then try to create an execution-environment with ansible-builder

See the above input files

Actual results

Keeps failing on the psycopg[pool,binary] install

Expected results

It should handle the supported installation of psycopg required for ansible.eda on s390x

Additional information

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions