-
Notifications
You must be signed in to change notification settings - Fork 5.5k
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
Cross Build Images for ARM #4211
Comments
@RichiCoder1 are you looking for help with this issue? |
Hmmm. I could certainly take a swing, but the docker build is deeply baked into ArgoCD's make so I'd likely need guidance (or a long weekend which I won't have for a little bit haha) |
Another faster option would be to use a CI that supports the ARM systems. I'm currently using that one to run and check that the ARM images work successfully. On top of the release branches there is this commit that does the build for ARM images, the build history is here. |
Hi @alinbalutoiu, Im trying to deploy argo on a Pis cluster. I was checking the images you'd build. Are those images accessible or did you put it in a private registry? It would be great to have ArgoCD images for Arm64 available. thanks |
@agustinvinao I believe these are the builds |
@alinbalutoiu perfectly working! thanks mate ...I'm running a microk8s cluster on RP4+ (8GB) |
Above worked w/ my k3s cluster on RPi4+ as well. Thanks for the images! |
@RichiCoder1 Any progress on using Buildx for this? |
@DWSR I haven't put any active effort into this personal, though I think some work has happened via other contributers to make this happen. I haven't (and for the forseeable future) had time to work on this |
@DWSR I'm currently trying to build with It looks similar to the issue described here, trying to debug the issue to see what's wrong. |
Been toying a bit with this. Just leaving this here as it might help someone else.
And I think the problem @alinbalutoiu ran into: when using qemu to emulate arm/arm64, you run into the issue that Before building, run on native system: docker run --rm -it -v $(pwd)/ui/package.json:/src/package.json:ro -v $(pwd)/ui/yarn.lock:/src/yarn.lock:ro -v $(pwd)/cache:/cache --workdir /src node:12.18.4 yarn install --cache-folder /cache I haven't found yet how to only download the files, so it will install everything. Shouldn't take long (17 seconds on my machine). Now we have a cache, we can give this to the build step and build arm with this diff in Dockerfile: +ADD cache /cache
-RUN yarn install
+RUN yarn install --offline --cache-folder /cache The Docker context becomes huge, so not really ideal, but it does do the trick. Now building via docker buildx build --platform linux/arm64 -t truebrain/argocd:v2.0.0-rc1 --build-arg BUILD_ALL_CLIS="false" . This produces images; I have not tried them yet, that is next on the agenda :D For anyone also trying this, also a few observations worth sharing:
|
instead of building the cache externally, I've used the following arg with yarn --network-timeout 100000 |
Nice, that works fine too indeed :) Much easier solution ;) Small status update:
Other than that, this seems to work fine on a raspberry pi 4 cluster :) |
Hi, I was trying to find any info about when arm64 images may be available. Any update on this or an idea when this may be available? |
I'm also keenly interested in this. Anything that I can do to help push this along? :) |
My Solution - Build with docker on Pi4 8G running RaspianI realize this doesn't answer the issue, but when I google for arm images I get this page so I am including these directions to help future me or someone else on how to build and use an arm image Install docker
Built the image (this took awhile)
Installed with getting started yaml
Replaced container images with arm images in
Then it just worked! |
@johnlonganecker Looking at the github dex repo it seems that there are arm64 builds at v2.27.0.. what makes them different from the ones at docker registry? I got it working on my pi4, though I am not sure if these are built on top of qemu, if so, then there's a big trade off in performance for sure.. |
@alborotogarcia When I left the image as I did not try throwing on the |
Built a v2.1.3 Image yesterday on my 4 GB Raspberry pi and put it up on docker hub: It took a very long time, I had to add |
I had to update the
...since it would just not finish the first time (I am building argocd using Concourse pipelines deployed on a Microk8s Raspberry pi cluster). Problem was... first time.. you do not have anything cached - hence (as many people are hitting the same issue) - you need to re-run "manually" the yarn install command a couple of times. Which is hard in a pipeline. |
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 advancements that would enable this with GitHub Actions.
Motivation
Running ArgoCD on arm64 via registry images.
Proposal
Long story short, there's some excellent actions that will be landing shortly: docker/build-push-action#92 (comment)
They, amgonst other things, make it easier to cross build using QEMU (at the price of emulation overhead): https://github.com/crazy-max/test-docker-action/blob/master/.github/workflows/full.yml#L59
Figured I'd create this ticket after doing some research and noting that the limitation mostly seemed to be docker/CI related.
The text was updated successfully, but these errors were encountered: