Skip to content
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

Arm Support #260

Open
MarkSpencerTan opened this issue Jan 10, 2023 · 8 comments
Open

Arm Support #260

MarkSpencerTan opened this issue Jan 10, 2023 · 8 comments

Comments

@MarkSpencerTan
Copy link

Hello, is OVS-CNI usable for arm nodes? I noticed that it was crosscompiled to work for the arm environment, however, I'm getting an issue where the OVS CNI pods are crashing randomly only for my arm nodes.

The only error that's visible on the pod is as follows:

ovs-cni-marker qemu: uncaught target signal 11 (Segmentation fault) - core dumped

Is there a way to get more verbose logging options to determine where it had a segfault?

Thanks so much!

@phoracek
Copy link
Member

Hello, could you try removing or overriding the GOARCH variable here https://github.com/k8snetworkplumbingwg/ovs-cni/blob/main/cmd/Dockerfile#L12, and then compiling? Perhaps that may help.

Is it crashing immediately on start or only after a while?

If I remember correctly, you should be able to change the log level in the manifest: https://github.com/k8snetworkplumbingwg/ovs-cni/blob/main/manifests/ovs-cni.yml.in#L63

@courtland
Copy link
Contributor

I ran into this as well. Changing GOARCH to arm64 in either the Makefile or cmd/Dockerfile, depending upon the build method, does indeed work. The resulting plugin operates correctly under arm64.

Is there any interest in releasing official arm64 binaries?

@courtland
Copy link
Contributor

I opened PR #266 to at least make the plumbing for building arm64 easier. For now I am able to use this for my needs, but it would be nice to have this extended to release official binaries for both architectures.

@courtland
Copy link
Contributor

#266 was merged, which at least makes it possible to build for arm64. Perhaps there is interest in releasing multiple official binaries?

@phoracek
Copy link
Member

I would not be against it. Currently I just manually tag, call make to build the binaries on my laptop and upload them. If you would provide make commands for cross compilation (or better a GitHub Action doing it for every posted tag), I would be happy to merge and maintain that.

@cyclinder
Copy link

Can we release arm64 assets in https://github.com/k8snetworkplumbingwg/ovs-cni/releases?

@cyclinder
Copy link

root@cyclinder3:~/cyclinder/ovs-cni# make GOARCH=arm64 build
/root/cyclinder/ovs-cni/build/_output/bin//go//bin//go fmt ./pkg/... ./cmd/...
/root/cyclinder/ovs-cni/build/_output/bin//go//bin//go vet ./pkg/... ./cmd/...
cd cmd/marker && /root/cyclinder/ovs-cni/build/_output/bin//go//bin//go fmt && /root/cyclinder/ovs-cni/build/_output/bin//go//bin//go vet && GOOS=linux GOARCH=amd64 CGO_ENABLED=0 GO111MODULE=on /root/cyclinder/ovs-cni/build/_output/bin//go//bin//go build -tags no_openssl -mod vendor

It seems GOARCH=arm64 doesn't works...

@ykulazhenkov
Copy link
Contributor

full ARM support was added in #307

multiarch image (amd64/arm64/ppc64le) is available in Github package registry https://github.com/k8snetworkplumbingwg/ovs-cni/pkgs/container/ovs-cni-plugin

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

No branches or pull requests

5 participants