Project

Profile

Help

Pulp Container Roadmap » History » Sprint/Milestone 16

ipanova@redhat.com, 05/15/2019 03:51 PM

1 1 ipanova@redhat.com
# Pulp Docker Roadmap
2 2 ipanova@redhat.com
3
~~~
4
This is a living document that is moving towards a long term plan to develop Docker plugin for Pulp 3.0 and beyond.
5
~~~
6 1 ipanova@redhat.com
7
  
8 16 ipanova@redhat.com
<span style="color: #458b74;">green</span>  
9 14 ipanova@redhat.com
h2. Supported Content Types
10 1 ipanova@redhat.com
11
### MVP
12
13 16 ipanova@redhat.com
  - <span style="color: #458b74;">Image manifest schema2 and schema1</span>
14
  - {color: #458b74} Manifest list
15
  - {color: #458b74} Blob
16
  - {color: #458b74} Tag
17 2 ipanova@redhat.com
18 1 ipanova@redhat.com
## Pulp Docker Plugin Use Cases
19
20
### MVP
21
22 2 ipanova@redhat.com
##### Sync
23 8 ipanova@redhat.com
24 16 ipanova@redhat.com
  - <span style="color: #458b74;">As a user I can sync docker repo from docker registry</span>
25 1 ipanova@redhat.com
26
<!-- end list -->
27 8 ipanova@redhat.com
28 16 ipanova@redhat.com
  - {color: #458b74} assumes registry is compliant v2 api specs
29
  - {color: #458b74} with token based auth
30
  - {color: #458b74} specify \`feed\` and \`upstream_name\`
31 8 ipanova@redhat.com
32
<!-- end list -->
33 1 ipanova@redhat.com
34 16 ipanova@redhat.com
  - As a user I can sync from a docker repo published by Pulp ( pulp2pulp sync)
35 2 ipanova@redhat.com
  - As a user, I can exactly mirror the content of a remote repository.
36 16 ipanova@redhat.com
  - {color: #458b74} As a user, I can mirror the content of a remote repository with an additive behaviour, so content is never removed locally.
37 1 ipanova@redhat.com
38
**NOTE**: dropping enable_v1, enable_v2, mask_id options
39
40 8 ipanova@redhat.com
##### Publish
41
42 16 ipanova@redhat.com
  - {color: #458b74} As a user I can distribute docker content
43
  - {color: #458b74} As a user, I can specify publish_directory( i.e base_path) from which the content will be served( provided by pulp_core)
44 8 ipanova@redhat.com
  - As a user, I can specify repo-registry-id that will be used in the docker registry
45
  - As a user i can specify redirect-url which will lead to the location the content is stored
46
47 16 ipanova@redhat.com
As a result the above section should enable clients to perform \`docker/podman pull\`
48 13 ipanova@redhat.com
49 8 ipanova@redhat.com
**NOTE** dropping protected option
50
51 12 ipanova@redhat.com
### Post-MVP 4.1+
52
53 2 ipanova@redhat.com
##### Addition of the content to the repo with deps
54
55
  - As a user I can add Manifest and all Blobs it references to the destination repo
56
  - As a user I can add Manifest List and all Manifests and Blobs it references to the destination repo
57
  - As a user I can add Tag and all its' associated content it references to the destination repo
58
59
##### Upload Artifacts( units are not created):
60
61
  - As a user I can upload  
62 1 ipanova@redhat.com
    \* Manifest Lists  
63 2 ipanova@redhat.com
    \* Image Manifests  
64 1 ipanova@redhat.com
    \* Blobs  
65
    \* (no upload of tags)
66
67
##### Create Content Units from uploaded Artifacts( MVP docker content types)
68
69
##### Multi-unit Upload from Tarball:
70
71
  - As a user I can upload a skopeo generated tarball that contains one or many content units
72 3 ipanova@redhat.com
73 2 ipanova@redhat.com
##### Enable v2/catalog endpoint
74 3 ipanova@redhat.com
75 1 ipanova@redhat.com
##### Sync
76
77 16 ipanova@redhat.com
  - {color: #458b74} As a user I can sync a registry by whitelisting tags ( Filtered Sync)
78
  - {color: #458b74} As a user i can lazily fetch docker repo by specifying the download policy
79
  - {color: #458b74} As a user I can sync a private docker repo from docker registry
80
  - <span style="color: #458b74;">As a user I can sync docker repo from docker registry with basic auth</span>
81 13 ipanova@redhat.com
  - As a user I can validate the size and the checksum of downloaded content against metadata ( #2625 #2624)
82 16 ipanova@redhat.com
  - As a user, I can sync from a repository with Forein Layers and save them in pulp for disconnected env.
83 8 ipanova@redhat.com
84 1 ipanova@redhat.com
##### Publish
85
86 16 ipanova@redhat.com
  - As a user I can distribute docker content using a remote server ( rsync exporter)
87 1 ipanova@redhat.com
  - As a user I can specify whether i want to convert docker image schema2 to schema1( aka schema convertor, for older clients support)
88 10 ipanova@redhat.com
89 13 ipanova@redhat.com
##### Custom Live API (4.1+))
90 11 ipanova@redhat.com
91 7 ipanova@redhat.com
  - some dedicated storage for the metadata files ( remove the need of in-memory database)
92 13 ipanova@redhat.com
  - enable docker push functionality or provide this as a separate plugin/package
93 8 ipanova@redhat.com
94 3 ipanova@redhat.com
## What will be dropped in Pulp3
95 1 ipanova@redhat.com
96 2 ipanova@redhat.com
  - v1 API support. In Pulp3 we'll have just v2 api registry and corresponding v2 content types
97
  - v1/search. There is no v2/search so \`docker search\` for v2 content will not work. If upstream docker will add support for v2 docker content search by the time we deliver docker plugin for pulp3 we will reconsider and include the endpoint.
98 1 ipanova@redhat.com
  - content protection. In Pulp3 docker repos will not support entitlement cert protection. ( option \`protected\` is dropped)
99 7 ipanova@redhat.com
  - export content into a tar file. It was possible to do so for v1 content.
100 13 ipanova@redhat.com
  - Crane is not longer used as a registry API. Pulp 3's ability to serve custom live APIs has made it possible for Crane's feature set to be incorporated into the pulp_docker plugin