-
Notifications
You must be signed in to change notification settings - Fork 4.9k
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 to build minikube binary on AArch64 #2455
Conversation
Current Makefile can only support build `minikube` bin on {linux, darwin, windows}/amd64 system. This PR is used to build the binary on linux/arm64 platform. Fix kubernetes#2454 Signed-off-by: Dennis Chen <[email protected]>
Can one of the admins verify this patch? |
/assign @jimmidyson 🎃 |
Hello @minikube-bot @dlorenc @luxas @jimmidyson , any feedback/suggestion about this if we want to use |
Hey, We've had some similar discussions over in #2171 about enabling minikube for other architectures. Can you explain the use-case a little bit more? Changes like this greatly expand our test/support matrix, so we need to make sure there's enough interest to justify the support costs. |
Hi except the point mentioned in #2171, we're building the AArch64 enterprise ecosystem which is being evaluated by some big internet companies, so clearly it's very important for us to have those related areas ready for the customers. |
I'm going to close this and the related PR for now. Feel free to re-open with a more detailed proposal on how to run integration tests on these platforms in CI. Until then, we can't make any promises on keeping minikube actually working on these platforms, so it would be irresponsible to add any kind of official support. |
@vielmetti - I'm OK with approving this PR so long as it doesn't break our current Make rules. Please see about updating it for merge conflicts. We don't yet have plans for aarch64 on our CI system, so we'll just list it as an experimental port for now. |
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: arm64b If they are not already assigned, you can assign the PR to them by writing The full list of commands accepted by this bot can be found here. The pull request process is described here
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
I did some work* on building for ARM, by using Raspbian and the Don't see any reason why that shouldn't work in a CI context, as it doesn't require root. Can verify on it hardware afterwards (Raspberry Pi), so it could be an interesting project. |
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.
Looks like a hardcoded oneliner is remaining, but much more remain for the none
driver.
@@ -199,7 +199,7 @@ e2e-cross: e2e-linux-amd64 e2e-darwin-amd64 e2e-windows-amd64.exe | |||
|
|||
.PHONY: checksum | |||
checksum: | |||
for f in out/localkube out/minikube-linux-amd64 out/minikube-darwin-amd64 out/minikube-windows-amd64.exe out/minikube.iso; do \ | |||
for f in out/localkube out/minikube-$(GOOS)-$(GOARCH)$(IS_EXE) out/minikube.iso; do \ |
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.
This line is part of the release build, it tries to checksum all known binaries (they have been cross-compiled earlier).
Thus it doesn't make sense to checksum only one of them. Should probably make the list into a make variable though.
I think the Raspbian distro is 32-bit ( https://www.debian.org/releases/stretch/arm64/release-notes/ |
@@ -104,7 +104,7 @@ endif | |||
out/minikube-windows-amd64.exe: out/minikube-windows-amd64 | |||
cp out/minikube-windows-amd64 out/minikube-windows-amd64.exe | |||
|
|||
out/minikube-%-amd64: pkg/minikube/assets/assets.go $(shell $(MINIKUBEFILES)) | |||
out/minikube-%-$(GOARCH): pkg/minikube/assets/assets.go $(shell $(MINIKUBEFILES)) |
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.
This has already been changed (in c7037c4). But it doesn't really help, anyway.
It needs to be dynamic, so that you can cross-compile for any target. This way, it only works for
Added a better (cross-compilng) implementation in #3887, we can close this old PR now. But need a new ticket for discussing runtime support for the ARM architecture (amd64)... As long as we were doing VM, this was rejected. But for the new |
Closing this PR as an alternative has been merged. Thank you! |
Current Makefile can only support build
minikube
bin on{linux, darwin, windows}/amd64 system. This PR is used to
build the binary on linux/arm64 platform.
Fix #2454
Signed-off-by: Dennis Chen [email protected]