go-containerregistry
go-containerregistry copied to clipboard
FR: Support resumable push
Hi team,
I wonder if it's possible to support resumable push in go-containerregistry. We found that pushing XL image layers (we have images with 40GB+ layers) often fails under choppy network conditions or when the servers are throttled, and it seems go-containerregistry uploads the entire image layer in one single PATCH request instead of splitting a layer into chunks, so every time a layer push failed it had to start all over again.
Supporting resumable push in go-containerregistry will help our use cases greatly I think. If this is not possible, would also love to learn if there are other OCI client libraries that already support this functionality.
Thanks
References:
- https://docs.docker.com/registry/spec/api/
- https://github.com/opencontainers/distribution-spec/blob/main/spec.md#resumable-push
- https://github.com/moby/moby/issues/4872
- https://github.com/goharbor/harbor/issues/15150
- https://github.com/regclient/regclient