Fluentd-kubernetes-daemonset: Unify multi-arch tags

Created on 18 Jan 2021  路  4Comments  路  Source: fluent/fluentd-kubernetes-daemonset

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/

enhancement

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-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.

All 4 comments

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.

Was this page helpful?
0 / 5 - 0 ratings