Project

Profile

Help

Pulp Container Roadmap » History » Sprint/Milestone 15

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