Support Blob Mounts#3045
Conversation
Client code that uses containerd to manipulate images in a registry are missing this very important feature (mounting blobs from another repository). This also opens the door to leverage that when we'll track layers origin in the local store, to avoid duplicating layers in the registry (and make Push more efficient). Signed-off-by: Simon Ferquel <[email protected]>
Signed-off-by: Simon Ferquel <[email protected]>
|
Looks like maybe a rebase on current master should be done; doesn't show up in your diff, but there is a more recent use of This looks great, especially since I would need this feature to rebase |
|
I wish I would have broken up #2697, I didn't feel it was ready and didn't have time to clean it up for merge. There is a different way to add the authorizations I should have PR'ed separately. Additionally we want to avoid interface changes whenever possible, the blob mounting shouldn't need to look different from any other Push, the Docker code should just be able to use additional information to perform the operation. |
|
@dmcgowan do you want me to split the PR ? (one for fixing the multi-scope thing, and the other for supporting mounts). Also for not introducting a new interface on top of the resolver, is it ok if I add a field |
|
First part of the split: #3052 |
|
Closing in favor of #3053 |
Containerd has a fantastic support for manipulating images in a registry (manifest walkers in particular are very powerful). This is why we chose to use it in github.com/docker/cnab-to-oci.
However, it is missing a very important feature for our use case: mounting blobs from one repository to another.
This PR adds support for a blob-mount operation in the remotes/docker package.
It also fixes support for multiple token scopes in the same request (which was currently broken, but not used).