Skip to content

feat: multi-arch python-builder image via buildah-remote - #121

Merged
Jonathan Gangi (JAVGan) merged 1 commit into
konflux-lightwell:mainfrom
fabriziosta:feat/multi-arch-python-builder-official-python-builder-only
Nov 9, 2026
Merged

Jonathan Gangi (JAVGan) merged 1 commit into
konflux-lightwell:mainfrom
fabriziosta:feat/multi-arch-python-builder-official-python-builder-only

Conversation

@fabriziosta

@fabriziosta Fabrizio Asta (fabriziosta) commented Nov 9, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Enable multi-architecture builds of the native python-builder image (Containerfile) on Konflux for linux/amd64, linux/arm64, linux/s390x, and linux/ppc64le.

This PR is intentionally scoped to only what the python-builder PAC pipelines need to produce a correct multi-arch image index. It does not include:

  • Containerfile.cli / python-builder-cli PAC changes
  • python-fromager-build-wheels-remote task, generator, or PAC pipelines
  • MPC SSH / OTP remote-wheels work

Those will follow in separate PRs to keep review small.

Why

Today python-builder builds with single-arch buildah-oci-ta. Non-x86 hosts need:

  1. Correct AUDITWHEEL_ARCH / AUDITWHEEL_PLAT baked into the image for the target CPU
  2. Per-arch rustup-init digests (the old Containerfile only verified the x86_64 hash)
  3. A ppc64le Arrow/xsimd Clang VSX fix
  4. PAC wiring that fans out platforms through buildah-remote (MPC) and aggregates an OCI image index

What changed

Image build (Containerfile + scripts)

Change Purpose
ARG TARGETARCH + runtime_base_packages_{amd64,arm64,s390x,ppc64le} stages Bake AUDITWHEEL_ARCH/PLAT from buildah’s --platform / TARGETARCH
build_utils.sh + manylinux-entrypoint uname remap Safety net if a stage still sees the x86_64 default on a non-x86 host
build-rust.sh per-arch rustup-init sha256 Supports aarch64/s390x/ppc64le (and keeps i686/armv7l) for RUSTUP_VERSION=1.29.1
Drop RUSTUP_HASH from Containerfile Hash selection moved into build-rust.sh
Arrow xsimd 14.2.0 → 14.3.0 sed in build-arrow.sh Fixes Clang VSX long / __vector bool failure on ppc64le

PAC pipelines (.tekton/python-builder-{pull-request,push}.yaml)

  • Switch build-container (buildah-oci-ta) → matrixed build-images (buildah-remote-oci-ta)
  • Add build-platforms: linux/x86_64, linux/arm64, linux/s390x, linux/ppc64le
  • Set build-image-index: true and feed $(tasks.build-images.results.IMAGE_REF[*]) into build-image-index
  • Set IMAGE_APPEND_PLATFORM=true so per-arch tags do not collide before the index is built
  • Keep existing Konflux task digests from main except the build task (remote bundle)

Docs-only notes

IMPLEMENTATION_SUMMARY.md, MIGRATION_STATUS.md, and VERSION_UPDATES.md updated to describe per-arch rustup hashes (no behavior change beyond the scripts above).

Notes for reviewers

  • Platform list uses plain linux/arm64 (not a machine-size override). Adjust if lightwell MPC requires a sized pool (e.g. linux-m2xlarge/arm64).
  • Base is current konflux-lightwell/python-builder main (includes recent Containerfile stages such as libpq/gpgme/librdkafka); multi-arch patches were reapplied on top rather than replaying an older branch tip.

Made with Cursor

Build the native Containerfile for amd64/arm64/s390x/ppc64le with
TARGETARCH-baked AUDITWHEEL_ARCH, per-arch rustup hashes, and a ppc64le
Arrow xsimd fix. Switch the python-builder PAC pipelines to a
buildah-remote matrix and OCI image index.

Assisted-by: Cursor
Signed-off-by: Fabrizio Asta <fasta@redhat.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Comment thread build_scripts/build-arrow.sh Resolved

@JAVGan Jonathan Gangi (JAVGan) 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.

LGTM

@Allda

Copy link
Copy Markdown
Contributor

/ok-to-test

@JAVGan
Jonathan Gangi (JAVGan) merged commit 7429611 into konflux-lightwell:main Nov 9, 2026
4 of 7 checks passed
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