Update CRI to use transfer service for image pull by default#8515
Update CRI to use transfer service for image pull by default#8515dmcgowan merged 1 commit intocontainerd:mainfrom
Conversation
|
Hi @fangn2. Thanks for your PR. I'm waiting for a containerd member to verify that this patch is reasonable to test. If it is, they should reply with Once the patch is verified, the new status will be reflected by the I understand the commands that are listed here. DetailsInstructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. |
a62e6ed to
ed26de0
Compare
|
/ok-to-test |
ed26de0 to
3ed06cd
Compare
3ed06cd to
88d975b
Compare
pkg/cri/server/image_pull.go
Outdated
| return nil, fmt.Errorf("failed to pull and unpack image %q: %w", ref, err) | ||
| } | ||
|
|
||
| return &runtime.PullImageResponse{ImageRef: ref}, nil |
There was a problem hiding this comment.
Thanks for review! Will address it in the coming changes.
There was a problem hiding this comment.
Done.
Just curious CRI currently maintain an in-memory image cache(there could be situations that the CRI image store and containerd image store are out of sync, like other clients e.g. ctr removed an image). Can we get rid of it by directly using contained image store?
fd0d0c3 to
113293b
Compare
45eaa5d to
88e6abe
Compare
88e6abe to
b47bf45
Compare
b47bf45 to
95e3822
Compare
|
CRI test failures seem related to the new (optional) image verifier service merged in #8493; the image verifier plugin is a required plugin for transfer plugin now and the error seems to be related to that? Seems you rebased, so I'm not sure what else has to change to make that work properly? Error: |
95e3822 to
3faa50c
Compare
919d22b to
97fd85e
Compare
dmcgowan
left a comment
There was a problem hiding this comment.
We can get this in for 2.1. Either in an update to this PR or a followup, I would like to see more cases where it will fallback to the local behavior if CRI is configured for something that is not supported in transfer service. We can keep it as a default, but should minimize the disruption for this release, we don't need to rush the cutover.
Hey @dmcgowan, are you suggesting changing the default to use local pull to minimize any risk? I know that the initial implementation kept local pull as the default behavior, but then there was some discussion to make transfer service default since we were initially targeting this change for the 2.0 major release. |
I'm fine keeping transfer as default, but we should fallback to use local if there is a configuration that is not supported with the transfer service yet.
Referring to this comment. Either update the comment if some of those are no longer relevant or fallback to local if they are set. We don't want a configuration to suddenly stop working in 2.1. |
|
Please check the perf results @swagatbora90 @samuelkarp |
|
We just merged a vagrant fix to CI; if you rebase on |
|
/retest |
|
Given @dmcgowan's comment and the fact that @swagatbora90 put in the fallback checks, we can go ahead and merge and do any fixups in a follow-up PR that are still outstanding. This should be good for 2.1 RC though |
|
Its getting kicked out of the merge queue from |
|
The flaky tests seems to be testing two different Registry config. One using Registry.ConfigPath and another with Registry.Mirror containerd/integration/image_pull_timeout_test.go Lines 275 to 289 in d5534c6 Transfer Service does not support Registry.Mirror, so this may be the issue. But I am confused why this has been passing in some cases. If we do not use the mirror, we should never hit the circuit breaker and the test should fail always. Logs does show that the test passes once but when it runs again, no content gets fetched |
- adds a transfer service progress reporter to handle timeouts. Also other test fixes - fallback to local image pull when configuration conflict Signed-off-by: Tony Fang <[email protected]> Co-authored-by: Swagat Bora <[email protected]>
|
Skipping Registry.Mirrors test when running with Transfer Service. |
|
There are additional test failures, but does not appear to be related to the PR changes: |
|
I don't see any report of this particular error, so may be related to my changes. Taking a look. |
That's a common problem after a previous stage failure on the Windows CI jobs; in this case a 503 from registry.k8s.io killed the image tests in the first integration run. We're not having the best of luck with CI stability these days |
This PR is to update CRI to optionally use transfer service for image pull.
Part of #8227
ImagePullWithTransferServiceto specify whether to use transfer service for image pullThe PR is still in progress, put out to for early review and utilize CI for integration tests.