Linux-arm64 Calamari build?

We are trying to deploy to AWS EC2 A1 machine which is linux-arm64 so we need Calamari for this platform but I don’t think it is currently supported? Would it be hard to add such support?
PS We followed this article on how to replace Calamari with linux-arm version, but that arm is arm32

OK, to answer my own question: it is trivial to add linux-arm64 build to Calamari (just by adding it to <RuntimeIdentifiers> list). And it works with SSH tentacle but only when it is named Calamari.linux-arm.nupkg. If we try to use proper name Calamari.linux-arm64.nupkg the deployment fails with the following error:

Platform linux-arm64 is currently not supported

Is there a way to add linux-arm64 to the list of supported platforms? Otherwise we can just use Calamari.linux-arm.nupkg name for linux-arm64 but it doesn’t seem like the cleanest solution.

Hi @Eduard_Sergeev!

Thanks for getting in touch - we don’t have an official release for ARM64 yet, but as you were able to work around, there are some hacky ways to do this. I’ll bring up the desire for a full arm64 platform support with our engineers and see if it’s something that is on the roadmap.

Hi @Eduard_Sergeev ,
Hopefully you see this message. Can you elaborate on how you got the tentacle working on ARM64? I am currently facing the same issue with a Jetson ARM64 and could use some help. Any specifics on what you did would be great.

Thanks

Hi @brent.kinney,

I pretty much just followed the article mentioned in the first post but instead of downloading Calamari.linux-arm I built Calamari.linux-arm64 from Calamari source (I don’t think linux-arm64 was supported back then but looks like it is now) then I also had to rename it to Calamari.linux-arm.nupkg (since linux-arm64 platform is (was?) not supported by Octopus) before uploading it to c:\Program Files\Octopus Deploy\Octopus. And that was it.
The only slightly annoying thing is that our linux-arm64 tentacle is listed as linux-arm so you can’t deploy to a real linux-arm but we don’t need linux-arm so it is fine.

By the way, the version 2019.11.2 of Octopus seems to support linux-arm out of the box (but no linux-arm64 yet?) so if you are on it I reckon you can just build linux-arm64 Calamari, replace linux-arm in Octopus with it and then just select linux-arm in Platform for your linux-arm64 tentacle. Otherwise you will need to do specify the target platform as described here.

1 Like

@Eduard_Sergeev
Thank You! That helps a lot, we ended up upgrading our Octopus version and replaced the OSX package with our newly compiled arm64 package from the Octopus Deploy Github. Has been working great for us so far.
Happy Deployments!

1 Like