-
Notifications
You must be signed in to change notification settings - Fork 18.9k
Prepare tests for Windows containerd support #42164
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Prepare tests for Windows containerd support #42164
Conversation
|
Failed ppc64le test looks to be unrelated and known flaky #42057 |
cpuguy83
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
e9c9c81 to
878a1d7
Compare
05b3b01 to
4b55512
Compare
|
@TBBle @thaJeztah are we good to go with this one? |
4b55512 to
dd22c94
Compare
Signed-off-by: Olli Janatuinen <[email protected]>
dd22c94 to
bffa730
Compare
|
Looks to be hard to pass CI nowadays here but afaiu those failures are not related to my changes... |
|
I agree, I can't see how Linux daemon startup (two of the failures) or a random |
thaJeztah
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
but we should have a look at handling those errors, looks like there's some iffy code in how we handle them (discarding error types that could possibly be useful)
|
|
||
| err := client.ContainerPause(ctx, cID) | ||
| assert.Check(t, is.ErrorContains(err, "cannot pause Windows Server Containers")) | ||
| assert.Check(t, is.ErrorContains(err, containerderrdefs.ErrNotImplemented.Error())) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The daemon may be converting it from the containerd error type;
Lines 186 to 187 in 81dbed4
| case containerderrors.IsNotImplemented(err): | |
| return http.StatusNotImplemented |
And on the client side, will handle it as an errdefs.InotImplemented();
Lines 79 to 83 in 81dbed4
| // IsNotImplemented returns if the passed in error is an ErrNotImplemented | |
| func IsNotImplemented(err error) bool { | |
| _, ok := getImplementer(err).(ErrNotImplemented) | |
| return ok | |
| } |
Oh, actually, it may not be converted; looking at
Lines 41 to 43 in 7b9275c
| if err := daemon.containerd.Pause(context.Background(), container.ID); err != nil { | |
| return fmt.Errorf("Cannot pause container %s: %s", container.ID, err) | |
| } |
It just trumps the error-type, and converts it into a generic error (likely will return a 500 error at the API level)
- What I did
As part of Windows + ContainerD CI work on #41479 I noticed that some tests need to be slightly modified that for that purpose. Additionally I enabled some tests which have been disabled on Windows earlier.
- How I did it
On way that those should works both with and without ContainerD on Windows.
- How to verify it
Pass CI here and you can also check from #41479 build log that these tests have passed.
- A picture of a cute animal (not mandatory but encouraged)
