Skip to content

Display icon/badge alongside container registry tags that point to manifest lists/indexes

Context

Part of Improve container registry multi-architecture i... (&11952).

"Atomic" (not an official term, but helps describing them) container images are individual, self-contained units that include everything needed to run a container, namely a manifest (think of it as a recipe with all individual pieces of data that make up an image) the filesystem layers and configuration metadata. They are straightforward and suitable for a specific environment/platform.

In contrast, manifest lists (or indexes) are collections of references to multiple container images, each optimized for different platforms or architectures (like Windows, Linux, ARM, etc.). This allows a single container reference to dynamically point to the appropriate image based on the user's platform, making it easier to support diverse environments with a single reference.

Right now, we don't have any visual distinction between manifest lists/indexes (less common) and "atomic" manifests (most common) when listing tags in the UI. Images based on manifest lists/indexes (e.g., multi-architecture images) have a distinct set of attributes, which we aim to expose in #408873 and #369852. Therefore, giving users a visual clue into what images have these distinctive attributes is beneficial for discoverability purposes.

This enhancement will allow users to quickly identify whether an image is an "atomic" image or a multi-platform manifest list/index at a glance, improving clarity and discoverability.

Task

Using the below screenshot from https://gitlab.com/jdrpereira/multi-arch/container_registry/1245177...

image

... and knowing that tag 1.0.0 points to a manifest list/index, we should probably add some unique icon/badge alongside the name (?) of these tags so that it's easy for users to spot the ones that are regular images or lists/indexes (among which multi-arch images are the most common). Something like this:

image

Implementation

On the frontend, it's possible to know that a tag points to a list/index if its media_type (part of the updated Rails API response that will come out of #411387 (closed), which in turn is mapped from the List Repository Tags response from the registry) is one of application/vnd.docker.distribution.manifest.list.v2+json (Docker) or application/vnd.oci.image.index.v1+json (OCI).

Ideally we'd avoid using a text badge with List or Index, as we have two possible terms for the same thing. So a generic icon instead of a text badge would be ideal IMO.

Edited by João Pereira