Hi,
Please could you use manifests to provide a single tag name for all supported architectures? This allows our mixed-arch k8s cluster to automatically pull the correct image for each node.
I notice some previous bits relating to this have been closed, but Docker Hub _does_ support buildx manifests - they show it being used in their own blog post: https://www.docker.com/blog/multi-arch-build-and-images-the-simple-way/
I notice some previous bits relating to this have been closed, but Docker Hub _does_ support buildx manifests - they show it being used in their own blog post: https://www.docker.com/blog/multi-arch-build-and-images-the-simple-way/
Their blog post does not show that DockerHub supports docker buildx.
That blog post uses GitHub Actions to run docker buildx building not for DockerHub.
To build manifest list you can use following docker commands.
docker manifest create x --amend y --amend z
docker manifest push x
It's a real lame sauce to to use Node Selector for each node type.
We're moving towards a mixed architecture platform and this would be a big help. We've done it for our internal apps and as fert-f said, it's little more than adding amd64 to your AMD64 image names (to distinguish them from the manifest) and then:
docker manifest create fluent/fluentd-kubernetes-daemonset:v1.12.0-debian-kafka2-1.0 fluent/fluentd-kubernetes-daemonset:v1.12.0-debian-kafka2-amd64-1.0 fluent/fluentd-kubernetes-daemonset:v1.12.0-debian-kafka2-arm64-1.0
docker manifest push fluent/fluentd-kubernetes-daemonset:v1.12.0-debian-kafka2-1.0
Instead we have to faff about with NodeSelectors and/or Affinity just to achieve this.
@cosmo0920 It seems like docker manifest support isn't required to create multi-arch images/manifest lists in DockerHub builds, manifest-tool can be used instead; I took a shot at implementing it in #566 so hopefully it does the trick, it would be great to simplify deployments to clusters using multiple architectures.
Most helpful comment
We're moving towards a mixed architecture platform and this would be a big help. We've done it for our internal apps and as
fert-fsaid, it's little more than addingamd64to your AMD64 image names (to distinguish them from the manifest) and then:Instead we have to faff about with NodeSelectors and/or Affinity just to achieve this.