Image transfer service support in nerdctl
What is the problem you're trying to solve
The containerd transfer service is a simple flexible service which can be used to transfer artifact objects between a source and destination: https://github.com/containerd/containerd/issues/7592
nerdctl image pulling process can be more flexible by supporting transfer service.
Describe the solution you'd like
N/A
Additional context
Just an idea but I'm not an expert of this and have limited time for now, but ctr is somewhat inconvenient compared to nerdctl.
Thanks @hsiangkao Looks like something from the old days libchan peeps.
Can you clarify what you mean by "pulling process can be more flexible"?
Do you have a specific use-case in mind you would like to see supported?
Thanks @hsiangkao Looks like something from the old days libchan peeps.
Can you clarify what you mean by "pulling process can be more flexible"?
Just my own understanding: The old client image APIs do many detailed steps in a hardcode way (https://github.com/containerd/containerd/blob/main/client/pull.go).
If some process internal changes, we need to upgrade nerdctl.
But new transfer service hides the internals, and makes containerd itself do more.
Do you have a specific use-case in mind you would like to see supported?
My current use case is pretty simple: https://github.com/containerd/containerd/pull/11744 this feature relies on the transfer service, I've already tested it with ctr and it works but ctr is inconvenient compared to nerdctl
I agree, that's a great idea. It would be beneficial for nerdctl.
Since there is a new issue tracking that, i'm just closing this to avoid fragmented redundance which makes people harder to find the useful information: https://github.com/containerd/nerdctl/issues/4573