Project

Profile

Help

Story #4657

As a user i can use skopeo pulp transport to upload images to Pulp container registry

Added by ipanova@redhat.com over 1 year ago. Updated about 1 year ago.

Status:
NEW
Priority:
Normal
Assignee:
-
Sprint/Milestone:
-
Start date:
Due date:
% Done:

0%

Estimated time:
Platform Release:
Groomed:
No
Sprint Candidate:
No
Tags:
Sprint:
Quarter:

Description

In order to write a pulp transport in skopeo we need to provide endpoints skopeo will access.

Put the manifest identified by name and reference where reference can be a tag or digest.

PUT /v2/<name>/manifests/<reference>
Host: <registry host>
Authorization: <scheme> <token>
Content-Type: <media type of manifest>

{
   "name": <name>,
   "tag": <tag>,
   "fsLayers": [
      {
         "blobSum": "<digest>"
      },
      ...
    ]
   ],
   "history": <v1 images>,
   "signature": <JWS>
}

Initiate a blob upload. This endpoint can be used to create resumable uploads or monolithic uploads.

For monolithic uploads

POST /v2/<name>/blobs/uploads/?digest=<digest>
Host: <registry host>
Authorization: <scheme> <token>
Content-Length: <length of blob>
Content-Type: application/octect-stream

<binary data>

For resumable uploads

POST /v2/<name>/blobs/uploads/
Host: <registry host>
Authorization: <scheme> <token>
Content-Length: 0

If successful, an upload location will be provided to complete the upload. Optionally, if the digest parameter is present, the request body will be used to complete the upload in a single request.

More info on what we should expect in the headers as well as what we need to return is documented here

https://docs.docker.com/registry/spec/api/#manifest
https://docs.docker.com/registry/spec/api/#initiate-blob-upload


Related issues

Related to Container Support - Story #5027: As a user, I can 'docker push' to a Pulp repository POST

<a title="Actions" class="icon-only icon-actions js-contextmenu" href="#">Actions</a>

History

#1 Updated by ipanova@redhat.com over 1 year ago

  • Tags Pulp 3 added

#2 Updated by dkliban@redhat.com over 1 year ago

We should definitely add the ability for users to perform the POST and PUT requests in the description. Since these APIs are used to add content to Pulp, it is most appropriate to add them to pulp-api (port 24817) using ViewSets and Serializers. The registry read APIs should continue to be served by the pulp-content-app (port 24816).

#3 Updated by bmbouter over 1 year ago

  • Tags deleted (Pulp 3)

#4 Updated by ipanova@redhat.com over 1 year ago

  • Related to Story #5027: As a user, I can 'docker push' to a Pulp repository added

#5 Updated by ipanova@redhat.com about 1 year ago

  • Project changed from Docker Support to Container Support

Please register to edit this issue

Also available in: Atom PDF