Fix publishing OCI image as tarball #44693
Merged
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.
Context
Currently, when customers use our tooling to publish containers as tarballs, both Docker and OCI images are saved as a tarball that has Docker tarball format. The produced tarball can be consumed by other tooling like Docker or Podman. However, this is incorrect, as OCI image tarballs should follow a distinct structure specific to the OCI format. The correct OCI tarball can be consumed by Podman and other tooling that understands OCI tarballs.
Customer impact
Without this change, customers will continue to receive improperly structured OCI tarballs.
Details
OCI image tarball structure should look like https://github.com/opencontainers/image-spec/blob/main/image-layout.md#oci-layout-file
Changes
ImageIndexV1
manifests entries. (this is needed to set image name and tag in the tarball)Testing
Risk
Low - the existing tests ensure that other scenarios were not affected.