project-zot / zot

zot - A scale-out production-ready vendor-neutral OCI-native container image/artifact registry (purely based on OCI Distribution Specification)

Home Page:https://zotregistry.dev

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

[Feat]: Publish zot multi-arch images

sagikazarmark opened this issue · comments

Is your feature request related to a problem? Please describe.

Having to add the target OS and arch to the image name is extremely annoying. Deployment instructions and assets (eg. docker-compose.yaml or Kubernetes YAMLs) become much less portable.

Describe the solution you'd like

Publish multi-arch zot images (in addition to the existing ones)

Describe alternatives you've considered

I've been building custom images so far, but I'd like to stop doing that.

Additional context

I know it's been discussed a few times (forgive my ignorance, I only found #1761, I stopped searching for other occurrences after 10 minutes), but other than "conservative choice" I haven't seen an explanation what the harm is in providing a multi-arch image in addition to the existing ones.

Is there a technical difficulty that makes producing such images hard/impossible?

@sagikazarmark yes, this has come up a few times.

Rationale/blockers:

  1. We want to publish OCI images only
  2. Currently we use https://github.com/project-stacker/stacker to do so.
  3. stacker lacks the ability to publish a multi-arch image index

Let us know of alternatives and we can definitely evaluate.

I believe there are tools out there that can take single-arch images and create multi-arch images. Buildah comes to mind: https://github.com/containers/buildah

As a temporary solution you could take the images from stacker and feed them into buildah manifest to publish multi-arch images.

There might be other tools out there as well.

docker buildx imagetools create works great, too.

docker buildx imagetools create -t image:latest image:latest-linux