Commit 38cc3e7
fix(containerd): detect NVIDIA runtime under containerd v2 plugin path and via imports (#1242)
The nvidia runtime check searches /etc/containerd/config.toml for the
literal
`plugins."io.containerd.grpc.v1.cri".containerd.runtimes.nvidia`, which
is the containerd 1.x plugin path. containerd 2.x uses
`io.containerd.cri.v1.runtime`, so the check raises a false positive on
every v2 host even when the nvidia runtime is configured correctly.
Two changes:
- Accept either plugin path (1.x grpc.v1.cri or 2.x cri.v1.runtime).
- Follow `imports = [...]` directives in the main config so drop-in
files (e.g. /etc/containerd/conf.d/99-nvidia.toml written by
nvidia-container-toolkit-daemonset on recent gpu-operator versions) are
inspected too. Read errors on individual imports are ignored so the
existing substring checks still run against whatever could be read.
Adds unit tests for the v2 plugin path, the new constant, and the
import-following helper.
The error:
```
May 07 12:01:00 cluster-2 gpud[3478]: {"level":"warn","ts":"2026-05-07T12:01:00.934Z","caller":"log/log.go:175","msg":"nvidia GPUs found but nvidia-container-toolkit pod is not found"}
```
- [ ] Marking as draft I also haven't tested this (yet) and this is
claude coding.
With this kind of containerd setup:
```
$ containerd --version
containerd containerd.io v2.2.3 77c84241c7cbdd9b4eca2591793e3d4f4317c590
$ find /etc/containerd/ -type f
/etc/containerd/config.toml
/etc/containerd/config.d/root-on-nvme.toml
$ find /etc/containerd/ -type f|xargs cat
imports = ["/etc/containerd/config.d/*.toml", "/etc/containerd/conf.d/*.toml"]
version = 3
[metrics]
address = "0.0.0.0:1338"
grpc_histogram = true
root = "/mnt/local_disk/containerd"
```
Co-authored-by: Gyuho Lee <6799218+gyuho@users.noreply.github.com>1 parent aad0c01 commit 38cc3e7
3 files changed
Lines changed: 115 additions & 5 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
7 | 7 | | |
8 | 8 | | |
9 | 9 | | |
| 10 | + | |
| 11 | + | |
10 | 12 | | |
11 | 13 | | |
12 | 14 | | |
| |||
34 | 36 | | |
35 | 37 | | |
36 | 38 | | |
37 | | - | |
38 | | - | |
39 | | - | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
40 | 45 | | |
41 | 46 | | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
42 | 52 | | |
43 | 53 | | |
44 | 54 | | |
| |||
363 | 373 | | |
364 | 374 | | |
365 | 375 | | |
| 376 | + | |
| 377 | + | |
| 378 | + | |
| 379 | + | |
| 380 | + | |
366 | 381 | | |
367 | 382 | | |
368 | 383 | | |
369 | 384 | | |
370 | 385 | | |
371 | | - | |
372 | | - | |
| 386 | + | |
373 | 387 | | |
374 | 388 | | |
375 | 389 | | |
| |||
499 | 513 | | |
500 | 514 | | |
501 | 515 | | |
| 516 | + | |
| 517 | + | |
| 518 | + | |
| 519 | + | |
| 520 | + | |
| 521 | + | |
| 522 | + | |
| 523 | + | |
| 524 | + | |
| 525 | + | |
| 526 | + | |
| 527 | + | |
| 528 | + | |
| 529 | + | |
| 530 | + | |
| 531 | + | |
| 532 | + | |
| 533 | + | |
| 534 | + | |
| 535 | + | |
| 536 | + | |
| 537 | + | |
| 538 | + | |
| 539 | + | |
| 540 | + | |
| 541 | + | |
| 542 | + | |
| 543 | + | |
| 544 | + | |
| 545 | + | |
| 546 | + | |
502 | 547 | | |
503 | 548 | | |
504 | 549 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | 3 | | |
| 4 | + | |
| 5 | + | |
4 | 6 | | |
5 | 7 | | |
6 | 8 | | |
| |||
11 | 13 | | |
12 | 14 | | |
13 | 15 | | |
| 16 | + | |
14 | 17 | | |
15 | 18 | | |
16 | 19 | | |
17 | 20 | | |
| 21 | + | |
18 | 22 | | |
19 | 23 | | |
20 | 24 | | |
21 | 25 | | |
22 | 26 | | |
23 | 27 | | |
24 | 28 | | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
25 | 60 | | |
26 | 61 | | |
27 | 62 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2063 | 2063 | | |
2064 | 2064 | | |
2065 | 2065 | | |
| 2066 | + | |
| 2067 | + | |
| 2068 | + | |
| 2069 | + | |
| 2070 | + | |
| 2071 | + | |
| 2072 | + | |
| 2073 | + | |
| 2074 | + | |
| 2075 | + | |
| 2076 | + | |
| 2077 | + | |
| 2078 | + | |
| 2079 | + | |
| 2080 | + | |
| 2081 | + | |
| 2082 | + | |
| 2083 | + | |
| 2084 | + | |
| 2085 | + | |
| 2086 | + | |
| 2087 | + | |
| 2088 | + | |
| 2089 | + | |
| 2090 | + | |
| 2091 | + | |
| 2092 | + | |
| 2093 | + | |
| 2094 | + | |
| 2095 | + | |
2066 | 2096 | | |
2067 | 2097 | | |
2068 | 2098 | | |
| |||
0 commit comments