Task #6822
closed
Create and a use TempRepoVersion during docker push
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.
- Description updated (diff)
- Status changed from NEW to ASSIGNED
- Assignee set to mdellweg
- Groomed changed from No to Yes
- Sprint set to Sprint 73
- Sprint changed from Sprint 73 to Sprint 74
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"
- Sprint changed from Sprint 74 to Sprint 75
- Status changed from ASSIGNED to CLOSED - WONTFIX
Also available in: Atom
PDF