Description
A container registry can have multiple images under the same name for different CPU architectures. Thanks to that, the same Helm chart for example, can reference the same image name, and be installable both on amd64 machines and arm64 based machines.
I'd like for this Helm chart to be installable in arm64 based environments as well, for example on a RaspberryPi based k8s cluster.
Practically, this can be done by using buildx
which is like docker build
but you can then also pass --platforms linux/amd64,linux/arm64
and voila your images will be both amd64 and arm64 compatible. This has been done for JupyterHub for example and is very common among Helm charts. Amd64 and Arm64 are the most popular CPU architectures to support.
A reference implementation setup can be found here: https://github.com/jupyterhub/zero-to-jupyterhub-k8s/blob/d848959b6229d3adaf2cea7e06f79cac1433fc43/.github/workflows/test-docker-build.yaml#L41-L54
Related
- images: some refactoring and version bumps for arm64 compatible Dockerfiles #423 makes the Dockerfiles successfully build on arm64 platforms