These are instructions for building rancher-agent for arm32. If we start doing this regularly we'll need to standup CI, but for now doing it manually is good enough.
I suspect the reason that rancher-agent isn't supported for arm32 is because rancher proper (aka make build-server) doesn't compile for arm32 (with error constant 4294967295 overflows int). However, the agent (aka make build-agent) builds fine.
Cross-compilation isn't quite straightforward in these projects, so they've been tweaked (and a bug fixed).
rancher-agent's Dockerfile.agent pulls binaries from upstream dependencies that don't exist for arm32, so we have to build them manually.
share-mnt:
git clone https://github.com/paleozogt/rancher-share-mnt.gitcd rancher-share-mntgit checkout multiarch-v1.0.7dapper build armfile bin/share-mnt
loglevel:
git clone https://github.com/paleozogt/rancher-loglevel.gitcd rancher-loglevelgit checkout multiarch-v0.1.3dapper build armfile bin/loglevel
rancher-agent:
git clone https://github.com/paleozogt/ranchercd ranchergit checkout multiarch-v2.4.3dapper build-agent armfile bin/agentcp bin/agent packagecp ../rancher-loglevel/bin/loglevel packagecp ../rancher-share-mnt/bin/share-mnt packagecd packagedocker build --build-arg VERSION=v2.4.3 --build-arg ARCH=arm --build-arg IMAGE_ARCH=arm32v7 -t paleozogt/rancher-agent:v2.4.3-arm -f Dockerfile.agent .docker push paleozogt/rancher-agent:v2.4.3-arm
multi-arch image (use the official amd64/arm64 images along with our custom-built arm32 image):
docker pull --platform linux/amd64 rancher/rancher-agent:v2.4.3docker tag rancher/rancher-agent:v2.4.3 paleozogt/rancher-agent:v2.4.3-amd64docker push paleozogt/rancher-agent:v2.4.3-amd64docker rmi rancher/rancher-agent:v2.4.3docker pull --platform linux/arm64 rancher/rancher-agent:v2.4.3docker tag rancher/rancher-agent:v2.4.3 paleozogt/rancher-agent:v2.4.3-arm64docker push paleozogt/rancher-agent:v2.4.3-arm64docker rmi rancher/rancher-agent:v2.4.3docker manifest create paleozogt/rancher-agent:v2.4.3 paleozogt/rancher-agent:v2.4.3-amd64 paleozogt/rancher-agent:v2.4.3-arm64 paleozogt/rancher-agent:v2.4.3-armdocker manifest push paleozogt/rancher-agent:v2.4.3