Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

As a user I want to mirror container manifests by digests #1563

Open
ipanova opened this issue Mar 19, 2024 · 3 comments
Open

As a user I want to mirror container manifests by digests #1563

ipanova opened this issue Mar 19, 2024 · 3 comments

Comments

@ipanova
Copy link
Member

ipanova commented Mar 19, 2024

Is your feature request related to a problem? Please describe.
Tags are not deterministic. They are mutable and volatile. There is no guarantee that in time same content will be pointing to tag e.g. 'latest'.

Describe the solution you'd like
To solve the issue of reproducibility one could be using digests, as they are content addressable and instead mirror content by digest.
Container registry does not provide API endpoint that would list all manifest digests present within the repo as it is possible with tags/list endpoint, hence we need to add digests_list field to pulp-container-remote that will enable user to provide a list of manifest digest to mirror from the remote registry.

Describe alternatives you've considered
None

Additional context
https://issues.redhat.com/browse/SAT-24032
https://issues.redhat.com/browse/OSPRH-1338

@pulpbot
Copy link
Member

pulpbot commented Mar 19, 2024

@ipanova
Copy link
Member Author

ipanova commented Apr 23, 2024

In addition to this we could add an extra registry endpoint that would be accessible only between pulp instances. Instead of providing really long list of digests(unless a specific list is desired) one could just hit this endpoint /v2/<name>/manifests/list and all manifests will be discovered by digest. That could be an extra option on the remote that would in addition to regular tag dicovery also try to access manifests/list endpoint and fetch the rest of un-tagged manifests.

This idea is partially based on opencontainers/distribution-spec#222

@lubosmj
Copy link
Member

lubosmj commented Jun 7, 2024

This is about facilitating the sync between multiple Pulp instances to ensure that clients are downloading manifests by digests. We want to provide reproducible environment for our users. The reference by tags is not always "reliable" -- content/manifest behind the tag can change. The reference by digest will never change. The idea is to provide/host/mirror the list of digests.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Development

No branches or pull requests

4 participants