Building your own ArgoCD Arm64 image

I like Argo, I like Pi's, I need an Arm64 image of Argo.

I like Argo, I like Pi's, I need an Arm64image of Argo.

A little pre-req's you will need for this.

  • A Raspberry Pi (or some other ARM64 system), it's faster this way
  • Docker
  • Go
  • Git
  • Your user added to the docker group

First thing, do this on a Pi, it's actually faster than trying to use Qemu on an x86 system. By a lot.

I am not going to cover how to set up a Pi, but you will need a couple of tools installed. Docker, git and go.

To set up git is easy.

sudo apt update
sudo apt install git

I am not going to cover how to install Docker and go. There is really good documentation on how to do that. Here are a couple of links to get you started.

Install Docker Engine on Debian
Instructions for installing Docker Engine on Debian
How To Install Go on Debian 10 | DigitalOcean
This tutorial will guide you through downloading and installing Go, as well as compiling and executing a traditional “Hello, World!” program, on a Debian 10 server.

Next, make sure your user is added to the docker group. sudo usermod -a -G docker yourusername. You will need to log off and log back in after that for it to take effect.

Now that the pre-requisites are complete, we need to check out the code and start the build.

To get the code we use git. The command for that is git clone https://github.com/argoproj/argo-cd.git

Now that the repository is cloned, go in to it. cd argo-cd

Check out the correct tag, the latest at the time of writing is v2.1.6. To do that use git checkout v2.1.6

Now we build, make armimage. This will run for a while, for me it was about a half hour. When it is done it will output something like this:

Successfully built c3095878a525
Successfully tagged argocd:v2.1.6-arm

You can verify it exists by running docker container ls.

Conclusion

They recently fixed the issue of not being able to build an image for the ARM processors, but they currently do not have any official ARM images. From what I could gather from the GitHub issue it has to do with how long it takes to build, lack of resources to test it and lack of hardware.

Install Docker Engine on Debian
Instructions for installing Docker Engine on Debian
How To Install Go on Debian 10 | DigitalOcean
This tutorial will guide you through downloading and installing Go, as well as compiling and executing a traditional “Hello, World!” program, on a Debian 10 server.
Cross Build Images for ARM · Issue #4211 · argoproj/argo-cd
Summary Currently ArgoCD supports building arm64 images but doesn't publish them due to issues with cross-building with normal docker and GitHub Actions (AFAIK). There's some recent advance...