Project

Profile

Help

Story #4657

closed

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

Added by ipanova@redhat.com over 5 years ago. Updated almost 3 years ago.

Status:
CLOSED - WONTFIX
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 CLOSED - CURRENTRELEASE

Actions

Also available in: Atom PDF