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 7 months ago. Updated 7 months ago.

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

0%

Platform Release:
Blocks Release:
Target Release - Docker:
Backwards Incompatible:
No
Groomed:
No
Sprint Candidate:
No
Tags:
QA Contact:
Complexity:
Smash Test:
Verified:
No
Verification Required:
No
Sprint:

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 Docker Support - Story #5027: As a user, I can 'docker push' to a Pulp repository NEW Actions

History

#1 Updated by ipanova@redhat.com 7 months ago

  • Tags Pulp 3 added

#2 Updated by dkliban@redhat.com 7 months 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 7 months ago

  • Tags deleted (Pulp 3)

#4 Updated by ipanova@redhat.com 3 months ago

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

Please register to edit this issue

Also available in: Atom PDF