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

Add support for arm64 (draft) #514

Closed
wants to merge 5 commits into from
Closed

Conversation

ivang
Copy link
Contributor

@ivang ivang commented Jul 11, 2020

Addresses partially longhorn/longhorn#6 by adding support for arm64 (armhf not supported).

Possibly due to some race conditions integration tests were initially failing, which was resolved by introducing sleep at the problematic places. This is clearly a workaround and a cleaner solution would be needed.

With some small changes in longhorn-manager and longhorn-ui, I was able to deploy longhorn on k3s cluster of 4 Raspberry Pi 4s and, as far as I can tell, it seems to be functioning properly.

PRs for longhorn-manager and longhorn-ui are part of this.

Same as #513 but all commits are signed off.

Signed-off-by: Ivan Angelov <ivan@seeksense.org>
Signed-off-by: Ivan Angelov <ivan@seeksense.org>
Signed-off-by: Ivan Angelov <ivan@seeksense.org>
Signed-off-by: Ivan Angelov <ivan@seeksense.org>
Signed-off-by: Ivan Angelov <ivan@seeksense.org>
@yasker
Copy link
Member

yasker commented Jul 13, 2020

Thanks for your PR @ivang ! Please give us a few days to review it since we're in the release cycle of v1.0.1 right now.

Also, I am wondering what kind of test you've done so far? We might want to enable drone (our CI system) for ARM64 as well.

@ivang
Copy link
Contributor Author

ivang commented Jul 13, 2020

Thank you @yasker, there's really no rush on my part at all.

As for the tests, I simply ran the build pipeline locally, on a 64bit Raspberry Pi OS, by typing make, as part of which scripts/integration-tests was executed. That's all, I didn't do anything special but, as I mentioned, I had to work around some race conditions by introducing time.sleep() in several places within the tests themselves. Those sleeps are mostly introduced between the creation of a ReplicaClient object and the first operation executed on it. This calls for a cleaner solution, of course, but I didn't know any better.

With the tests passing, and similar modifications made to longhorn-manager and longhorn-ui, I was able to deploy the longhorn system on my k3s cluster of 64bit-enabled Raspberry Pi 4s. I was also able to claim longhorn PVs and it seems to be working fine so far. That's about as much manual testing I've done so far.

It would be interesting to see if this works on environments other than mine, so I'd be curious to see the output of an ARM64-enabled drone.

@agustinvinao
Copy link

Hi, Any update on this? it will be a good step for the project to being able to run this on ARM . thanks

@yasker
Copy link
Member

yasker commented Aug 18, 2020

@agustinvinao We will start to review this PR soon. Currently trying to get some ARM resources for build/testing purposes.

@lexfrei
Copy link

lexfrei commented Sep 5, 2020

@yasker any news? I can give you a ssh access to my pi(s) if you need this kind of arm resources :)
Just pm me in telegram

@yasker
Copy link
Member

yasker commented Sep 8, 2020

Thanks for the offering @lexfrei ! We finally got some ARM machines last week and starts working on this PR.

We're planning to include the ARM support in the upcoming Longhorn v1.1.0 release as an experimental feature.

Copy link
Contributor

@boknowswiki boknowswiki left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

At package/Dockerfile, line 25:

https://github.com/krallin/tini/releases/download/${TINI_VERSION}/tini-${ARCH} /tini
and other places missing the ARCH.

You can take a look at longhorn/longhorn-instance-manager@934410c, your PR for instance-manager as reference.

I don't find the '+' option for me to add the comment at that line.

@agustinvinao
Copy link

Hey, sorry to insist on this.

Can we help on any way to make this available?
it feels like after a month we dont have any news about it. Do you have any estimation when v1.1 may be available with this?

Please let us know how to help.

@yasker
Copy link
Member

yasker commented Oct 23, 2020

@agustinvinao Everything is almost ready, Longhorn team has taken over the work. If you want to give it an early try, you should able to deploy from github.com/longhorn/longhorn-manager master branch (which is the development branch) on an ARM64 platform.

Let us know if you can successfully do it.

@agustinvinao
Copy link

agustinvinao commented Oct 23, 2020

@agustinvinao Everything is almost ready, Longhorn team has taken over the work. If you want to give it an early try, you should able to deploy from github.com/longhorn/longhorn-manager master branch (which is the development branch) on an ARM64 platform.

Let us know if you can successfully do it.

Will try to do a deploy and test it, thanks for your time.

UPDATE: I can confirm all runs ok on a 7 PI's cluster with 2 SSD disks attached, grate job and congrats for this tool. Will update if I have any comment. If anyone has questions, let me know

@yasker
Copy link
Member

yasker commented Nov 2, 2020

Close this PR since it has been included in #547 .

Thanks @ivang !

@yasker yasker closed this Nov 2, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
5 participants