paultmathew opened a new pull request, #21:
URL: https://github.com/apache/kyuubi-docker/pull/21

   ## What
   
   Switch the release image publish workflow 
(`.github/workflows/docker-image.yml`) from single-arch `docker build` + 
`docker push` to `docker buildx build --platform linux/amd64,linux/arm64 
--push`, adding the QEMU + Buildx setup steps.
   
   ## Why
   
   All released `apache/kyuubi` tags (e.g. `1.11.x`, and the 
`-spark`/`-flink`/`-all` variants) are currently **amd64-only**. Snapshot 
images (`apache/kyuubi:master-snapshot`) have been multi-arch since KYUUBI 
#4576 / #4577, but that change only covered the snapshot workflow in 
`apache/kyuubi`; the release images published from this repo were never 
converted. ARM support is still an open, unanswered ask in discussion 
apache/kyuubi#4487.
   
   This completes the release-image half of apache/kyuubi#4576.
   
   ## How it works
   
   The distribution is built once on the native (amd64) runner via 
`./build/dist` — Kyuubi/Spark/Flink are pure-JVM, architecture-independent 
artifacts — and the same dist is assembled onto the multi-arch 
`eclipse-temurin:8` base for both platforms. So buildx only emulates the small 
`apt` layer + `COPY` for `linux/arm64`; there's no cross-compiled native code. 
The combined build-and-push replaces the separate validate/push steps because a 
multi-arch manifest list cannot be loaded into the local Docker daemon.
   
   ## Testing
   
   - Verified `eclipse-temurin:8-jdk-focal` (the release Dockerfile base) 
publishes both `linux/amd64` and `linux/arm64`.
   - Built the release Dockerfile for both platforms locally with the same 
`buildx --platform linux/amd64,linux/arm64` invocation; the arm64 image 
assembles correctly (base + apt layer + dist copy) and produces a valid 
manifest list.
   - Validated that the multi-arch upstream Kyuubi image runs on arm64 
end-to-end: deployed `apache/kyuubi:master-snapshot` (the existing multi-arch 
artifact) on an arm64 (AWS Graviton) Kubernetes node and ran a Spark query 
(`SELECT 1`) through the Thrift frontend to completion.
   
   Reviewers: this only changes the publish workflow; the per-version 
Dockerfiles are untouched.
   
   Made with [Cursor](https://cursor.com)


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to