Could the argo team create official images for ARM (armv7/arm64)?
There are various rogue docker images of say argo-cd for ARM by community members but nothing really official. Would be nice to truly support ARM.
ARM is extremely popular, even in the datacenter, and I would like to be able to use Argo in an multi-architecture cluster.
Change build infrastructure to build both amd64 and arm variants.
Message from the maintainers:
If you wish to see this enhancement implemented please add a 馃憤 reaction to this issue! We often sort issues this way to know what to prioritize.
Would you like to submit a PR for this?
@alexec I suppose I can give it a go (get it?).
So this would basically mean what, the controller and binary would be recompiled for ARM? Anything else? I'm a little confused on the source code organization of the argoproj in general (there are a number of projects buried within the same tree).
could you take a look at argoproj/argo/Dockerfile which is how we build it
@alexec I made a PR for firstly fixing the Dockerfile build on arm64 platform. Let's see what we need to do next after this :))) Wondering if the community is interested in officially support arm, i.e. release a pre-built binary and docker image?
@pisymbol Sorry but I am wondering are you already working on this? I prepared a PR to fix this arm64 build problem, and if you have already prepared a PR, I will save mine to avoid conflict.
Had to revert PR. New PR needs to be submitted.
@alexec I made a PR for firstly fixing the Dockerfile build on arm64 platform. Let's see what we need to do next after this :))) Wondering if the community is interested in officially support arm, i.e. release a pre-built binary and docker image?
Can you add arm as well?
linux-x64 i think
Hi @pisymbol ! Do you mean GOARCH=arm i.e. arm 32bit? (Also a little bit off-topic but are you asking this because you need to run kubeflow on arm/arm64? I remember saw you in that community as well and I am doing similar thing but on arm64 only...)
Hi @alexec , well received, I have left my investigation result in the original PR #2364 , could you please take a look? Thanks!
@MrXinWang Yes! Sorry for the very late reply. Can we run Argo on a raspi cluster now?
Necrobumping this as I am also working on a raspi cluster.
Reworking the Dockerfile to automatically pickup the arch using buildx, might need some help with github workflow though
The related PR broken the build:
https://github.com/argoproj/argo/actions/runs/214249220
tag=$(basename $GITHUB_REF)
if [ $tag = "master" ]; then
tag="latest"
fi
targets="workflow-controller argoexec argocli"
for target in $targets; do
docker buildx build \
--push \
--platform="linux/amd64,linux/arm64,linux/ppc64le,linux/s390x" \
--target $target \
--tag "${DOCKERIO_ORG}/${target}:${tag}-linux" .
done
shell: /bin/bash --noprofile --norc -e -o pipefail {0}
env:
DOCKER_CONFIG: /home/runner/work/_temp/docker_login_1597785543603
DOCKERIO_ORG: ***
auto-push is currently not implemented for docker driver
@dgiebert could you please take a look?
Seems the --push option only works locally and not in the CI, replaced it accordingly to documentation.
Builds still failing on master: https://github.com/argoproj/argo/runs/1004007674?check_suite_focus=true
@dgiebert please can you take a look?
Sure will take another look, but this time it was according to documentation !
Multi-arch images not building on master: https://github.com/argoproj/argo/runs/1022694683?check_suite_focus=true
@dgiebert would you be willing to investigate please?
Judging from the error and documentation I need to add to the existing manifest, will try and create a PR for it !
@alexec buildx creates a manifest and it seems that I can only amend to it: https://docs.docker.com/engine/reference/commandline/manifest/
Like so: docker manifest create argoproj/argoexec:latest-linux -a argoproj/argoexec:latest-windows
Guess I will tag the images for linux with latest and latest-linux and add latest-windows to the manifest.
Available for testing in v2.11.0-rc1.
Argo-server and argo-workflow-controller work great, but version 2.11 and latest-linux do reference argoexec:v2.10.2 which does not exist as arm image. Is it possible to configure executor image version?
found it, it is an argument passed to the workflowcontroller container --executor-image