containerd / accelerated-container-image

A production-ready remote container image format (overlaybd) and snapshotter based on block-device.
Apache License 2.0
409 stars 75 forks source link

Question: multi-platform image support #264

Closed djdongjin closed 5 months ago

djdongjin commented 9 months ago

What would you like to be added?

Ask here instead of discussion since it may be a feature request. Feel free to move to discussion if it's already supported, thanks!

I wonder if overlaybd currently supports multi-platform images (e.g., an image index consisting of an amd manifest and an arm image manifest), e.g.:

  1. Does the image convertor support multi-platform image conversion/build?
  2. Does the image convertor support cross-platform image conversion (e.g. convert an arm image on an x86 VM)
  3. Does overlaybd snapshotter support multi-platform image (I guess yes since containerd will select the platform-specific image beforehand?)

Thanks!

Why is this needed for Accelerated Container Image?

Multi-platform images are common as a way to organize an image for different platform within a single unit.

Are you willing to submit PRs to contribute to this feature?

WaberZhuang commented 8 months ago
  1. Not supported yet, but we already have an implementation around this, I will be opening a PR soon.
  2. Yes, the convertor is platform-independent.
  3. Yes, just as you guessed.
djdongjin commented 8 months ago

Not supported yet, but we already have an implementation around this, I will be opening a PR soon.

Great! Look forward to the PR. (I guess the workflow will be like below?)

  1. given a multi-platform image index (with, e.g., one x86 image manifest and one ARM manifest)
  2. run the conversion on a x86 (or ARM) machine.
  3. the x86 image will be converted natively, the ARM image will be converted cross-platform.
  4. then another multi-platform image index for the 2 converted image manifests is generated.

Thanks @WaberZhuang for the update!

cc @shuaichang