-
Notifications
You must be signed in to change notification settings - Fork 435
[no-relnote] Add E2E for containerd #1313
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
Conversation
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.
Pull Request Overview
This PR adds comprehensive E2E testing for containerd runtime configuration alongside existing Docker testing infrastructure. The changes introduce a nested container testing framework that allows running tests inside containers to validate NVIDIA Container Toolkit behavior in containerized environments.
- Adds new E2E tests for containerd drop-in configuration functionality
- Introduces nvidia-cdi-refresh systemd unit testing
- Implements nested container runner infrastructure for isolated testing
Reviewed Changes
Copilot reviewed 9 out of 32 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| tests/go.mod | Adds new dependencies for UUID generation and test utilities |
| tests/e2e/runner.go | Implements nested container runner with Docker installation and CTK setup |
| tests/e2e/nvidia-ctk_containerd_test.go | New comprehensive containerd E2E test suite |
| tests/e2e/nvidia-ctk_docker_test.go | Refactors to use shared runner infrastructure and fixes macOS compatibility |
| tests/e2e/nvidia-cdi-refresh_test.go | New systemd unit tests for CDI refresh functionality |
| tests/e2e/nvidia-container-cli_test.go | Refactors to use nested container runner |
| tests/e2e/installer.go | Adds containerd installation template and additional flags support |
| tests/e2e/e2e_test.go | Centralizes test runner initialization in BeforeSuite |
| tests/e2e/Makefile | Documents new test categories |
Pull Request Test Coverage Report for Build 18005738357Details
💛 - Coveralls |
5c85056 to
3dc480c
Compare
|
I'll mark this PR as ready for review once #1235 is merged |
3dc480c to
563a192
Compare
Rebased |
029af03 to
1899001
Compare
51ad031 to
c65e468
Compare
|
Rebased |
241d330 to
d9b9288
Compare
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.
I added some in-code fixes / comments / suggestions as ArangoGutierrez#2
I think it's more useful to start simple, let's not add noise to the test cases with cases that are actually already covered. The intent of these tests are to check that:
The rendered config has the expected contents
In addition we cover the following (strictly speaking already covered by unit tests):
- We create the drop in files in the correct location
- We update the imports in the top-level
As discussed offline, what we need to check that the rendered config is correct is that:
- We make ONLY the expected additions (i.e. add the
nvidiaruntime) - We make ONLY the expected modifications (i.e.
default_runtime_nameandcdi_enabled) - We don't remove other config options
I don't think the tests as implemented properly cover this. Here I'm not talking about the configurations that we're running, but rather what we're checking after we have applied the config. This is why I was mentioning diffs in our call. If we diff the config dump before and the config dump after, we expect ONLY the addtions and modifications mentioned above.
Note that some of this is already covered by unit tests, so we don't have to be exhaustive. These unit tests don't, however cover the finer points of containerd merging configs and this is what these tests should focus on. As an example, if we were to update the containerd implementation to not include 598c632 we would expect the tests to fail on platforms where imports are not properly supported.
d9b9288 to
7d92183
Compare
7d92183 to
c624624
Compare
8ba2ce0 to
9c952ee
Compare
elezar
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.
What do you think of ArangoGutierrez#3?
🥇 |
|
@ArangoGutierrez let's squash and merge this. |
Signed-off-by: Evan Lezar <[email protected]>
Signed-off-by: Evan Lezar <[email protected]>
Signed-off-by: Evan Lezar <[email protected]>
Signed-off-by: Evan Lezar <[email protected]>
Bumps [third_party/libnvidia-container](https://github.com/NVIDIA/libnvidia-container) from `889a3bb` to `0964f81`. - [Release notes](https://github.com/NVIDIA/libnvidia-container/releases) - [Commits](NVIDIA/libnvidia-container@889a3bb...0964f81) --- updated-dependencies: - dependency-name: third_party/libnvidia-container dependency-version: '0964f81717e96ac903e39700908677dcdf72ed5f' dependency-type: direct:production ... Signed-off-by: dependabot[bot] <[email protected]>
Bumps [golang.org/x/mod](https://github.com/golang/mod) from 0.29.0 to 0.30.0. - [Commits](golang/mod@v0.29.0...v0.30.0) --- updated-dependencies: - dependency-name: golang.org/x/mod dependency-version: 0.30.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <[email protected]>
Bumps [github.com/urfave/cli/v3](https://github.com/urfave/cli) from 3.5.0 to 3.6.0. - [Release notes](https://github.com/urfave/cli/releases) - [Changelog](https://github.com/urfave/cli/blob/main/docs/CHANGELOG.md) - [Commits](urfave/cli@v3.5.0...v3.6.0) --- updated-dependencies: - dependency-name: github.com/urfave/cli/v3 dependency-version: 3.6.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <[email protected]>
Signed-off-by: Carlos Eduardo Arango Gutierrez <[email protected]> Signed-off-by: Evan Lezar <[email protected]>
5785975 to
d7a58ac
Compare
No description provided.