[release/8.0.4xx] Allow reading of OCI Image Indexes to determine RID-specific base image for multi-architecture images #43914
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Backport of #43631 to release/8.0.4xx
Description
The SDK Container tools didn't know how to read a rapidly-becoming-common format of container images called an OCI Image Index, and this presented to users as a lookup failure - this is very confusing when you can look at the container registry and in fact see that the image you want to use is present! Since for our purposes this structure is very similar to the existing multi-arch lookups that we already understand, this change implements a minimal reading of the OCI Image Index structure to unblock users while we continue to work on our support for authoring these Image Index structures.
Customer Impact
Without this change, users who create custom base images or pull images from feeds that are OCI multi-architecture images would just fail. The only workaround is to manually download and re-publish architecture-specific variants of the images you want to use, which is not always possible and a real roadblock to adoption. While the Microsoft base images are not OCI Image Indexes (yet) this is an area of active discussion and ~15% of all container publishing uses images other than the Microsoft-produced dotnet base images, so that cohort would be exposed to this break happening at any time.
Regression?
No - this is a feature that we hadn't yet implemented but were going to as part of the multi-arch support that we are still working on
Risk
Low - this doesn't impact our other base image format support, only expands the set of images we can support. We also have done manual testing verifying this support, and will add automated testing in
main
.