WSLC: Enable containerd image store for OCI image-layout and multi-platform image loading
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 33.7k
- Forks
- 1.8k
- Avg merge
- 3d 17h
- Merged PRs (30d)
- 116
Description
**Is your feature request related to a problem? Please describe.**
`wslc image load --input` cannot currently load OCI image-layout archives containing `oci-layout`, `index.json`, and content-addressed blobs. This prevents tools from loading standard multi-platform image archives into WSLC.
I've been working on adding support for `wslc` into the [.NET SDK's native container publishing support](https://github.com/dotnet/sdk/pull/55249) but found during testing our multi-arch image publishing that `wslc` wouldn't load the OCI image layout archive. Other .NET-supported backends like Docker with its containerd image store, Podman, and Apple's `container` CLI do at this point in time.
**Describe the solution you'd like**
Enable support for OCI layouts in `wslc` to enable seamless use of multi-arch image indexes in the tool.
**Describe alternatives you've considered**
- The .NET SDK could convert the OCI layout to a Docker archive before calling WSLC. Docker archive output does not provide a good standard representation for multi-platform images and can lose the image index.
- Load each images' platform separately. This still requires a way to construct and retain the local multi-platform manifest list and it hard to use for users, since it's unclear how to reference each specific image platform at run-time.
- Push the images and index to a temporary registry and pull them through WSLC. This requires additional infrastructure and turns a local publish into a registry operation.
- Exclude WSLC from .NET SDK multi-platform local publishing. This avoids the failure but leaves WSLC with less functionality than other supported local runtimes.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start at the wslc image load --input entry point and trace how Docker archives are currently handled. Compare that path with the OCI layout files named in the issue, including index.json and content-addressed blobs, and determine how multi-platform indexes should reach the containerd image store. Done means WSLC can load standard OCI image-layout archives while preserving multi-platform images.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- backend, cli
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100