-
Notifications
You must be signed in to change notification settings - Fork 708
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add support for multi-arch container images #3897
Add support for multi-arch container images #3897
Conversation
3a38324
to
363c17f
Compare
WIP WIP WIP Force docker login WIP Install buildx qemu Script steps WIP Increase timeout Multi-arch e2e image Increase timeout Avoid double build Plain progress Rebase Fix Docker script Add ARM build to nightly
d035d8b
to
9cf04e4
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, maybe add a note for developers that they need to turn on experimental features in Docker Desktop for this to work locally. Not sure if it would make sense to include a check in check-requisites.sh
?
Also all the people wanting to run the operator on their Raspberry Pi's will be out of luck with this as depending on the Pi's version they will need linux/arm/v7
or linux/arm/v8
I believe, which is not supported by our base image. Maybe worth a comment/
docker-build: go-generate generate-config-file | ||
docker build . \ | ||
docker-build: go-generate generate-config-file | ||
DOCKER_BUILDKIT=1 docker build . \ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Any particular reason we are introducing BuildKit with this PR? I am not opposed just curious.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I had to introduce it because the normal docker build
command could not parse the changes made to the Dockerfile (specifically, the --platform
argument). The alternative would have been to use two Dockerfiles -- which didn't seem right.
I believe Raspberry Pi 4 supports |
I am not sure, maybe we can turn this around and mention in the documentation which architectures we support (instead of saying what we don't support). I would think this could go near the "Supported versions" section in the Quickstart, maybe? |
Sounds good. Since there's still some work remaining to run the E2E tests on ARM before we can officially support it, I will add the disclaimer to the documentation in that PR. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM 👍
FYI I tested an |
run full pr build |
Adds multi-arch build support. With these changes, the nightly job should build both the
amd64
andarm64
versions of the operator.E2E testing on EKS Graviton machines will be added in a separate PR.
Related to #3504