-
Notifications
You must be signed in to change notification settings - Fork 97
ARM64 support #376
Comments
Very good @marcellanz I think this comes at an appropriate time since almost all Cloud Providers are adding support for the ARM architecture. I am going to change the travis files that I support to compile on multiple architectures. I hope this helps. But I think the biggest challenge is in the proxy image |
It would be nice if it came into our Roadmap in https://github.com/orgs/cloudstateio/projects/1. |
The ARM build will also fail for Kotlin support protocolbuffers/protobuf#3318 I opened this issue to address the issue in the Kotlin repository |
@marcellanz, great job! I think that multiarch support is important given that ARM is making it's way slowly but steadily to both cloud providers https://aws.amazon.com/ec2/graviton/ and developers' workstations https://en.wikipedia.org/wiki/Mac_transition_to_Apple_silicon.
FWIW, I have some ARM64 hardware at home (4 x SBCs with 4GB of RAM and fast NVMe SSDs) which I can use to set up a k8s cluster and try to run Cloudstate on it. |
@vkorenev This is also what I saw on multiple occasions where requests to support arm64 where dismissed with that the project just does not support it and one has to build "your own version". It's also understandable, as it is a lot of work to maintain production grade quality for a separate or multiple architecture. Let's see if that changes :) perhaps customers demand and cost reductions will drive that too. It would be great to have Cloudstate running on your ARM64 cluster. What type/brand of SBC do you have? |
@marcellanz Radxa Rock Pi 4 Model A https://wiki.radxa.com/Rockpi4/getting_started#get_start_specs
|
@vkorenev very interesting thanks, especially the M.2 M-Key connector. |
FYI, these issues have been closed. |
Thanks, @chanseokoh, awesome :) |
With a bit of hype lately as well as some real emerging demand, I'd like to open this issue to support ARM64. There are multiple tasks to do and also some challenges as some depending technology is not yet supporting the architecture fully.
Contemporary Notes
Components with potential issues:
WIP
Before opening this issue I did some explorative work and after some "travis fiddling" making some sbt:it with the TCK tests running. There is also a running Multi-Arch TCK docker image for the Go Support with an ARM64 build (gcr.io/mrcllnz/cloudstate-go-tck:latest).
The WIP branch can be found here:
https://github.com/marcellanz/cloudstate/tree/feature/arm64_support / https://github.com/marcellanz/cloudstate/issues/4
The most complicated part so far was the travis-ci arm64 image that runs as a "LXD container on Packet" and has an annoying habit not to resolve the localhosts IP address properly through its given hostname. It does not help that the LXD containers have limited permissions given to the travis runner. I fixed that with a bit of a hack I think, after fiddling unsuccessfully with /etc/hosts and
HOSTALIASES
.Still, some TCKs are failing but 20 of 25 tests succeeded:
https://travis-ci.com/github/marcellanz/cloudstate/jobs/355043948#L2335
TCK failing: https://travis-ci.com/github/marcellanz/cloudstate/jobs/355043948#L1710
(Please ignore other failing jobs on the links above, other tests like
npm tests
with node do work are working without any changes. As it takes a good amount of time, some parts of the travis build are commented out at the moment for the PoC.)The text was updated successfully, but these errors were encountered: