Closed samip5 closed 2 years ago
Thanks for this valid request. Unfortunately the base image that I use is single arch.
Deno, my runtime of choice, is waiting for Github Actions to add arm64 runners before they will begin offering official builds. Similarly I understand that I would need to use QEMU to create a multi arch image on GHA today.
I prefer using the official Deno images so this is effectively blocked upstream to Github Actions.
If arm64 is meaningful to you I will keep this open for now as a tracking issue.
To be fair, that's a valid thing to do rather than using qemu for it but if they're waiting on Github to add arm64 runners, good luck. That's going to take ages.
A lot of other repos just do it via qemu and call it a day.
The upstream issue is that they do a shitton of compiling and snapshotting and testing, so QEMU took hours. A tracking issue: https://github.com/denoland/deno/issues/1846
I found a dual-arch image lukechannings/deno built on Apple's ARM hardware, though the image is based on Ubuntu; I'm currently using an image which is based on alpine-glibc (yea, Deno has some pain points around portability... https://github.com/denoland/deno/issues/3711) and that specific alpine-glibc base image is also single-arch.
So, the 'cleanest' thing I could do today is add an additional ubuntu image to the CI which is based on the lukechannings/deno image, built with QEMU/buildx. Of course I don't personally run any ARM64 to test these properly, otherwise I would've already gone through this.
Could you please do the QEMU image for arm64?
Ok, I'll try it, but as a second -multiarch
image because I'd like to keep the main image built from the official Deno images.
A multiarch image is available at https://github.com/cloudydeno/kubernetes-dns-sync/pkgs/container/kubernetes-dns-sync/12924786?tag=multiarch and multiarch
tag will get updated over time.
Usage with helm like so: helm install cloudydeno/dns-sync --generate-name --set image.tag=multiarch
Currently, because this has no arm64 images, I have to add an affinity that forces it to be scheduled on my amd64 nodes.
Otherwise it would say "exec format error"