Skip to content

fix(operators): cross-compile the operator image for the target arch#30

Merged
stxkxs merged 1 commit into
mainfrom
fix/operator-multiarch-build
Jun 3, 2026
Merged

fix(operators): cross-compile the operator image for the target arch#30
stxkxs merged 1 commit into
mainfrom
fix/operator-multiarch-build

Conversation

@stxkxs

@stxkxs stxkxs commented Jun 3, 2026

Copy link
Copy Markdown
Member

The release's multi-arch build declared ARG TARGETARCH=amd64 with a default, shadowing buildx's per-platform value — so operator:0.1.0's linux/arm64 image carried an amd64 manager binary and CrashLooped on Graviton nodes (exec /manager: exec format error). Surfaced by the landing-zone task e2e GitOps-install path on real EKS.

Declares TARGETOS/TARGETARCH without defaults (canonical buildx pattern) → correct per-platform cross-compile. Bumps the chart to 0.1.1; tag operator-v0.1.1 re-publishes the corrected multi-arch image.

The Dockerfile declared ARG TARGETARCH=amd64 with a default value, which shadows
the per-platform value buildx auto-populates during a multi-arch build. So the
release's linux/arm64 image got an amd64 manager binary: the manifest claimed
arm64, but the bytes were amd64, and the operator CrashLooped on Graviton nodes
with "exec /manager: exec format error".

Declare TARGETOS/TARGETARCH without defaults (the canonical buildx pattern) so
buildx populates them per-platform and Go cross-compiles correctly. Plain
docker build without --platform leaves them empty and builds natively; an
explicit --build-arg still forces a specific arch. Bumps the chart to 0.1.1 for
the corrected release.
@stxkxs stxkxs merged commit 65309ea into main Jun 3, 2026
15 checks passed
@stxkxs stxkxs deleted the fix/operator-multiarch-build branch June 3, 2026 04:12
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.

1 participant