Story #968
closedAs a user, I can sync from a v2 registry
100%
Description
The sync process should start by trying with the v2 API and fall back to the v1 API.
Details of the v2 API: https://github.com/docker/distribution/blob/release/2.0/docs/spec/api.md
For now, we can assume that we only get the manifest's digest from the header Docker-Content-Digest, which is theoretically optional. The upstream docker registry does provide it. In the future, we can add logic to the sync and upload workflows that calculates the digest if it's not available.
As of this writing, the docker hub does not yet implement the v2 API. The only available implementation is the upstream registry, which you can run locally with
docker run -p 5000:5000 registry:2
Then you can push a repository to it with a docker client.
Deliverables:
- sync works with the v2 API
- sync creates both manifest and image units
- sync falls back to the v1 API
- Documentation / recipes
Related issues
Updated by mhrivnak over 9 years ago
- Blocked by Task #967: Create a "manifest" model added
Updated by mhrivnak over 9 years ago
- Blocks Story #969: As a user, I can sync from static files in the v2 API layout added
Updated by mhrivnak over 9 years ago
- Blocks Task #1048: Tracker for Docker v2 API and Manifest work added
Updated by rbarlow over 9 years ago
- Status changed from NEW to ASSIGNED
- Assignee set to rbarlow
I'm going to do this so well, that by the time I'm done it'll also sync the v3 registry which doesn't even exist yet.
Updated by rbarlow over 9 years ago
- Blocks Story #1144: As a user, I can sync from a v2 registry that requires RFC7235 authorization headers added
Updated by rbarlow over 9 years ago
- Blocks Story #1145: As a user, I am assured that Pulp is downloading the correct manifests added
Updated by rbarlow over 9 years ago
- Status changed from ASSIGNED to POST
- Target Release - Docker set to 1.1.0
Updated by rbarlow over 9 years ago
Since the place for the documentation doesn't exist in my source branch, we need to do the documentation in a separate commit. I decided to create a task for that instead of doing it here:
Updated by rbarlow over 9 years ago
- Related to Task #1163: Dockerment all of the Docker v2 work added
Added by rbarlow over 9 years ago
Added by rbarlow over 9 years ago
Added by rbarlow over 9 years ago
Added by rbarlow over 9 years ago
Updated by rbarlow over 9 years ago
- Status changed from POST to MODIFIED
- % Done changed from 0 to 100
Applied in changeset e069fa47970539dbed5ad503754164f8d1ff8053.
Updated by rbarlow about 9 years ago
- Target Release - Docker changed from 1.1.0 to 2.0.0
Updated by rbarlow almost 9 years ago
This module proves that users can sync from v2 registries:
Updated by dkliban@redhat.com almost 9 years ago
- Status changed from 6 to CLOSED - CURRENTRELEASE
Add support to sync with Docker v2 repositories.
https://pulp.plan.io/issues/968
fixes #968