Project

Profile

Help

Task #6822

Create and a use TempRepoVersion during docker push

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

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

0%

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

Description

For the duration of push create and use temporary repo version and only at the very last moment, lock on the repo and out the temporary repo version create a regular repo version.

History

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

  • Description updated (diff)

#2 Updated by mdellweg over 1 year ago

  • Status changed from NEW to ASSIGNED
  • Assignee set to mdellweg

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

  • Groomed changed from No to Yes
  • Sprint set to Sprint 73

#4 Updated by rchan over 1 year ago

  • Sprint changed from Sprint 73 to Sprint 74

#5 Updated by mdellweg over 1 year ago

It seems impossible to know which incoming requests to upload blobs are oing to be part of a specific docker push call because there is no sort of session management. So one idea is to have a shadow repository that can hold blobs and manifests until they are tagged, that is cleaned up regularly. The other option is to not care about the issue, because a docker repository with unreferenced blobs is still a valid docker repository, and this would reflect the REST-fullness of the registry api with respect to blobs. In this case it might be desireable to have a facility to clean out repository versions from untagged stuff.

Example requests for a "podman push":

"GET /v2/ HTTP/1.1" 200 2 "-" "libpod/1.9.1"
"HEAD /v2/24fe1111-5e3f-4e53-9802-2966399ac3bc/blobs/sha256:1079c30efc82c9ad970f01c9a732115b34156fcfd77daf69d65e914bb1de8196 HTTP/1.1" 404 23 "-" "libpod/1.9.1"
"HEAD /v2/8273c068-112f-4891-97a1-035c7316a5b5/blobs/sha256:17245aa5c48a129826730933b963660bd27b89bf8fb51da5af9e9a756393949a HTTP/1.1" 404 23 "-" "libpod/1.9.1"
"HEAD /v2/84d5bd4b-65bb-412d-9408-17772597e237/blobs/sha256:17245aa5c48a129826730933b963660bd27b89bf8fb51da5af9e9a756393949a HTTP/1.1" 404 23 "-" "libpod/1.9.1"
"HEAD /v2/5ad340dd-6b4b-479d-b1e8-24722e24e77e/blobs/sha256:17245aa5c48a129826730933b963660bd27b89bf8fb51da5af9e9a756393949a HTTP/1.1" 404 23 "-" "libpod/1.9.1"
"HEAD /v2/61bef6cb-aa9f-4577-8e70-079a49635d83/blobs/sha256:17245aa5c48a129826730933b963660bd27b89bf8fb51da5af9e9a756393949a HTTP/1.1" 404 23 "-" "libpod/1.9.1"
"HEAD /v2/f45307a1-c3d1-45c7-80b4-8ad76e24844b/blobs/sha256:17245aa5c48a129826730933b963660bd27b89bf8fb51da5af9e9a756393949a HTTP/1.1" 404 23 "-" "libpod/1.9.1"
"POST /v2/24fe1111-5e3f-4e53-9802-2966399ac3bc/blobs/uploads/ HTTP/1.1" 202 0 "-" "libpod/1.9.1"
"PATCH /v2/24fe1111-5e3f-4e53-9802-2966399ac3bc/blobs/uploads/ede79d5c-37d4-453a-9a53-7f8dadbf02a5 HTTP/1.1" 202 0 "-" "libpod/1.9.1"
"PUT /v2/24fe1111-5e3f-4e53-9802-2966399ac3bc/blobs/uploads/ede79d5c-37d4-453a-9a53-7f8dadbf02a5?digest=sha256%3A17245aa5c48a129826730933b963660bd27b89bf8fb51da5af9e9a756393949a HTTP/1.1" 201 0 "-" "libpod/1.9.1"
"HEAD /v2/24fe1111-5e3f-4e53-9802-2966399ac3bc/blobs/sha256:78096d0a54788961ca68393e5f8038704b97d8af374249dc5c8faec1b8045e42 HTTP/1.1" 404 23 "-" "libpod/1.9.1"
"POST /v2/24fe1111-5e3f-4e53-9802-2966399ac3bc/blobs/uploads/ HTTP/1.1" 202 0 "-" "libpod/1.9.1"
"PATCH /v2/24fe1111-5e3f-4e53-9802-2966399ac3bc/blobs/uploads/f1655677-de7a-4fdc-a29b-ed7773355d57 HTTP/1.1" 202 0 "-" "libpod/1.9.1"
"PUT /v2/24fe1111-5e3f-4e53-9802-2966399ac3bc/blobs/uploads/f1655677-de7a-4fdc-a29b-ed7773355d57?digest=sha256%3A78096d0a54788961ca68393e5f8038704b97d8af374249dc5c8faec1b8045e42 HTTP/1.1" 201 0 "-" "libpod/1.9.1"
"PUT /v2/24fe1111-5e3f-4e53-9802-2966399ac3bc/manifests/latest HTTP/1.1" 201 0 "-" "libpod/1.9.1"

#6 Updated by rchan over 1 year ago

  • Sprint changed from Sprint 74 to Sprint 75

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

  • Status changed from ASSIGNED to CLOSED - WONTFIX

Also available in: Atom PDF