Skip to content

Commit e2f8d2a

Browse files
committed
Set default spec dirs at config level
This change sets the default CDI spec dirs at a config level instead of when a CDI runtime modifier is constructed. This makes this setting consistent with other options such as the nvidia-ctk path. Signed-off-by: Evan Lezar <elezar@nvidia.com>
1 parent 2c5761d commit e2f8d2a

File tree

3 files changed

+13
-6
lines changed

3 files changed

+13
-6
lines changed

internal/config/config.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,7 @@ func getDefault() (*Config, error) {
151151
CDI: cdiModeConfig{
152152
DefaultKind: "nvidia.com/gpu",
153153
AnnotationPrefixes: []string{cdi.AnnotationPrefix},
154+
SpecDirs: cdi.DefaultSpecDirs,
154155
},
155156
},
156157
},

internal/config/config_test.go

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,7 @@ func TestGetConfig(t *testing.T) {
7777
CDI: cdiModeConfig{
7878
DefaultKind: "nvidia.com/gpu",
7979
AnnotationPrefixes: []string{"cdi.k8s.io/"},
80+
SpecDirs: []string{"/etc/cdi", "/var/run/cdi"},
8081
},
8182
},
8283
},
@@ -102,6 +103,7 @@ func TestGetConfig(t *testing.T) {
102103
"nvidia-container-runtime.mode = \"not-auto\"",
103104
"nvidia-container-runtime.modes.cdi.default-kind = \"example.vendor.com/device\"",
104105
"nvidia-container-runtime.modes.cdi.annotation-prefixes = [\"cdi.k8s.io/\", \"example.vendor.com/\",]",
106+
"nvidia-container-runtime.modes.cdi.spec-dirs = [\"/except/etc/cdi\", \"/not/var/run/cdi\",]",
105107
"nvidia-container-runtime.modes.csv.mount-spec-path = \"/not/etc/nvidia-container-runtime/host-files-for-container.d\"",
106108
"nvidia-container-runtime-hook.path = \"/foo/bar/nvidia-container-runtime-hook\"",
107109
"nvidia-ctk.path = \"/foo/bar/nvidia-ctk\"",
@@ -128,6 +130,10 @@ func TestGetConfig(t *testing.T) {
128130
"cdi.k8s.io/",
129131
"example.vendor.com/",
130132
},
133+
SpecDirs: []string{
134+
"/except/etc/cdi",
135+
"/not/var/run/cdi",
136+
},
131137
},
132138
},
133139
},
@@ -156,6 +162,7 @@ func TestGetConfig(t *testing.T) {
156162
"[nvidia-container-runtime.modes.cdi]",
157163
"default-kind = \"example.vendor.com/device\"",
158164
"annotation-prefixes = [\"cdi.k8s.io/\", \"example.vendor.com/\",]",
165+
"spec-dirs = [\"/except/etc/cdi\", \"/not/var/run/cdi\",]",
159166
"[nvidia-container-runtime.modes.csv]",
160167
"mount-spec-path = \"/not/etc/nvidia-container-runtime/host-files-for-container.d\"",
161168
"[nvidia-container-runtime-hook]",
@@ -185,6 +192,10 @@ func TestGetConfig(t *testing.T) {
185192
"cdi.k8s.io/",
186193
"example.vendor.com/",
187194
},
195+
SpecDirs: []string{
196+
"/except/etc/cdi",
197+
"/not/var/run/cdi",
198+
},
188199
},
189200
},
190201
},

internal/modifier/cdi.go

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -48,14 +48,9 @@ func NewCDIModifier(logger logger.Interface, cfg *config.Config, ociSpec oci.Spe
4848
}
4949
logger.Debugf("Creating CDI modifier for devices: %v", devices)
5050

51-
specDirs := cdi.DefaultSpecDirs
52-
if len(cfg.NVIDIAContainerRuntimeConfig.Modes.CDI.SpecDirs) > 0 {
53-
specDirs = cfg.NVIDIAContainerRuntimeConfig.Modes.CDI.SpecDirs
54-
}
55-
5651
m := cdiModifier{
5752
logger: logger,
58-
specDirs: specDirs,
53+
specDirs: cfg.NVIDIAContainerRuntimeConfig.Modes.CDI.SpecDirs,
5954
devices: devices,
6055
}
6156

0 commit comments

Comments
 (0)