Skip to content

Using an image index to reference nested related artifacts #1217

Open
@arewm

Description

@arewm

We have encountered some use cases where we would like to associate multiple related artifacts but which would still benefit from having their own namespace location.

  • Use case: A single Tekton task runs ko to produce multiple container images. While each of these image indexes can be pushed independently, we want to also associate them as being produced together by the single task. If we configure the ko build to push to quay.io/<username>/myrepo/ko-build/<image-name>, the task could return a single result quay.io/<username>/myrepo/ko-build which would map to all image indexes. (side note: chains should also support recursive index images).
  • Use case: We want to produce an immutable RPM repo which itself has immutable references to contained RPMs. To achieve this, we might push the repo to quay.io/<username>/myrpmrepo and the contained RPMs to quay.io/<username>/myrpmrepo/<rpm> image manifests.

Since an image index only has a reference to the digest for the referenced image index/manifest, it is not possible to map to reference any nested artifacts. Any client that is interested in supporting this functionality would need to add some form of client-specific encoding (i.e. via annotations) on the image index.

While some might be interested in having an image index refer to arbitrary pullspecs, I think that it is better to scope the references only to nested relationships as it is likely easier for registries to implement authorization models for these relationships. Being able to have a common authorization for all referenced artifacts would result in a better user experience.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions