Skip to content

PXB-3796: Build PXB on aarch64 - #4093

Open
nogueiraanderson wants to merge 4 commits into
masterfrom
PXB-3745-arm-plumbing
Open

PXB-3796: Build PXB on aarch64#4093
nogueiraanderson wants to merge 4 commits into
masterfrom
PXB-3745-arm-plumbing

Conversation

@nogueiraanderson

@nogueiraanderson nogueiraanderson commented May 18, 2026

Copy link
Copy Markdown
Contributor

Feature

  • Enables aarch64 in pxc-build and threads a required ARCH through the PXB v2 pipelines, fail-closed on missing or unknown values.

Why

  • PS ships ARM packages but pxc-build had only x86_64 variants; PXB cannot ship ARM backups without them.
  • Closes the ARM gap in the ECR tags requested by PXB-3745; unblocks PXB-3613.
  • Scope guards: 2.4 stays x86_64, centos:8 has no aarch64 image (excluded in compile and test matrices), AL2023 stays 9.x-only (its image ships without qpress, which the 8.0/8.1 test suites require).

Tickets

  • PXB-3796 (this slice) / PXB-3745 (parent request)
  • Companion: PR 4094 (AL2023 image; merges first, this branch is stacked on it)

nogueiraanderson added a commit that referenced this pull request May 19, 2026
Now that pxc/docker/install-deps handles AL2023, light up the
matrix row so the prepare-pxc-build-docker-ecr job emits
- pxc-build:amazonlinux-2023 (when run with ARCH=x86_64)
- pxc-build:amazonlinux-2023-aarch64 (when run with ARCH=aarch64)

Round-trip safe: the entry runs in parallel with the existing
distros and reuses the same `build()` helper. The aarch64 branch
inherits the ARCH_SUFFIX from prepare-docker.

Depends on PR PXB-3745-arm-plumbing (#4093) and
PXB-3745-al2023-install-deps (#4094).
Comment thread pxc/docker/prepare-docker Outdated
Comment thread pxc/docker/prepare-docker Outdated
Comment thread pxc/docker/prepare-docker Outdated
Comment thread pxc/docker/prepare-docker Outdated
Comment thread pxc/jenkins/prepare-pxc-build-docker.groovy Outdated
Comment thread pxc/jenkins/prepare-pxc-build-docker.groovy Outdated
@nogueiraanderson
nogueiraanderson marked this pull request as draft May 20, 2026 16:29
@nogueiraanderson
nogueiraanderson force-pushed the PXB-3745-arm-plumbing branch from 4449a55 to f28adbb Compare May 20, 2026 20:26
@nogueiraanderson
nogueiraanderson marked this pull request as ready for review May 20, 2026 20:27
@nogueiraanderson nogueiraanderson changed the title PXB-3745: ARM plumbing for prepare-pxc-build-docker PXB-3796: Build PXB on aarch64 May 21, 2026
@nogueiraanderson

Copy link
Copy Markdown
Contributor Author

@satya-bodapati Your review points are addressed on the current head (08c4ad4b); the changes-requested flag is still pinned to the superseded 4449a55d. What changed since then:

  • ARCH is a required, validated argument in prepare-docker (only x86_64 and aarch64; anything else fails with a usage error), and the pipeline maps aarch64 to docker-32gb-aarch64, x86_64 to docker-32gb, and errors on anything else.
  • Tag scheme: x86_64 keeps the historical unsuffixed ECR tags (e.g. pxc-build:oraclelinux-9) so existing consumers keep working; only aarch64 gets -aarch64. That is why a conditional suffix exists instead of a bare -${ARCH}; the rationale is a comment in prepare-docker now.
  • On the substitutions question: the builders array carries registry-style names like oraclelinux:9, and colons are not legal in image tags, so ${SOURCE_IMAGE//[:\/]/-} sanitises them into the tag form (oraclelinux-9).
  • amazonlinux:2023 is wired end to end (builders entry plus the DOCKER_OS choices across the 8.0/8.1/9.x job files), and the debain:bookworm typo is fixed.
  • The 2.4 pipelines are scoped back to x86_64 only (EOL; centos:7 and the other 2.4 distros have no aarch64 base images).

Validated today by building the images from this branch: OL8, OL9, and OL10 aarch64 all complete install-deps cleanly (OL8 resolves procps-ng-devel from codeready builder, scons is filtered on aarch64, and the legacy x86_64 RPM pinning block is verifiably skipped).

Could you re-review or dismiss the stale review when you get a chance? A CODEOWNERS review is requested separately in #eng-build.

- Add the .amzn2023 branch: RHVER sentinel, base-repo-only package set,
  word-wise skip list for packages AL2023 does not ship, nmap-ncat for
  netcat, no scons (modern builds use cmake)
- Skip the deprecated tools repo and EPEL on AL2023 and OL10; qpress
  stays limited to the 8.0 platforms that require it
- gcc14 toolchain for AL2023 in build-binary
- Fix PGKLIST typo so libsasl2-modules-gssapi-mit and libgnutls28-dev
  install on deb images (were appended to a dead variable)
- OL8: keep the legacy Percona-pinned RPMs x86_64-only; aarch64 takes
  procps-ng-devel from CRB and skips the python2-era packages
- scons only where used: x86_64 rpm and deb paths; aarch64 and AL2023
  build with cmake
- MySQL-python only where packaged (not OL8 aarch64; pip3 provides the
  connector there)
- prepare-docker: required ARCH argument with strict validation;
  aarch64 image tags carry the -aarch64 suffix, x86_64 tags unchanged
- run-build + run-test take ARCH as a required argument (fail-closed)
- arch-aware S3 tarball selectors and libaio path; x86_64 selection is
  byte-identical to the previous literal
- vault token retry honors success on the last attempt
- XBCLOUD_CREDENTIALS quoting hardened for the container sh -c script
Comment thread pxb/v2/jenkins/percona-xtrabackup-8.0-compile-param.yml
- ARCH axis + parameter threaded through 8.0/8.1/9.x compile, test, and
  cloud jobs; 2.4 pinned to x86_64
- centos:8 + aarch64 excluded in compile AND test matrices (no
  pxc-build:centos-8-aarch64 image)
- amazonlinux:2023 removed from 8.0/8.1 job choices; AL2023 targets
  8.4+/9.7+ only and its image ships without qpress, which the 8.0/8.1
  test suites require
- prepare-pxc-build-docker job gains the ARCH choice for aarch64 bakes
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants