mirror of
https://github.com/NVIDIA/nvidia-container-toolkit
synced 2025-03-29 03:43:53 +00:00
Merge branch 'CNT-3297/cdi-config' into 'main'
Add runtime config option for CDI spec dirs See merge request nvidia/container-toolkit/container-toolkit!190
This commit is contained in:
commit
eb85d45137
@ -44,6 +44,12 @@ type RuntimeConfig struct {
|
|||||||
// modesConfig defines (optional) per-mode configs
|
// modesConfig defines (optional) per-mode configs
|
||||||
type modesConfig struct {
|
type modesConfig struct {
|
||||||
CSV csvModeConfig `toml:"csv"`
|
CSV csvModeConfig `toml:"csv"`
|
||||||
|
CDI cdiModeConfig `toml:"cdi"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type cdiModeConfig struct {
|
||||||
|
// SpecDirs allows for the default spec dirs for CDI to be overridden
|
||||||
|
SpecDirs []string `toml:"spec-dirs"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type csvModeConfig struct {
|
type csvModeConfig struct {
|
||||||
|
@ -29,8 +29,9 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
type cdiModifier struct {
|
type cdiModifier struct {
|
||||||
logger *logrus.Logger
|
logger *logrus.Logger
|
||||||
devices []string
|
specDirs []string
|
||||||
|
devices []string
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewCDIModifier creates an OCI spec modifier that determines the modifications to make based on the
|
// NewCDIModifier creates an OCI spec modifier that determines the modifications to make based on the
|
||||||
@ -46,9 +47,15 @@ func NewCDIModifier(logger *logrus.Logger, cfg *config.Config, ociSpec oci.Spec)
|
|||||||
return nil, nil
|
return nil, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
specDirs := cdi.DefaultSpecDirs
|
||||||
|
if len(cfg.NVIDIAContainerRuntimeConfig.Modes.CDI.SpecDirs) > 0 {
|
||||||
|
specDirs = cfg.NVIDIAContainerRuntimeConfig.Modes.CDI.SpecDirs
|
||||||
|
}
|
||||||
|
|
||||||
m := cdiModifier{
|
m := cdiModifier{
|
||||||
logger: logger,
|
logger: logger,
|
||||||
devices: devices,
|
specDirs: specDirs,
|
||||||
|
devices: devices,
|
||||||
}
|
}
|
||||||
|
|
||||||
return m, nil
|
return m, nil
|
||||||
@ -91,6 +98,7 @@ func getDevicesFromSpec(ociSpec oci.Spec) ([]string, error) {
|
|||||||
// Modify loads the CDI registry and injects the specified CDI devices into the OCI runtime specification.
|
// Modify loads the CDI registry and injects the specified CDI devices into the OCI runtime specification.
|
||||||
func (m cdiModifier) Modify(spec *specs.Spec) error {
|
func (m cdiModifier) Modify(spec *specs.Spec) error {
|
||||||
registry := cdi.GetRegistry(
|
registry := cdi.GetRegistry(
|
||||||
|
cdi.WithSpecDirs(m.specDirs...),
|
||||||
cdi.WithAutoRefresh(false),
|
cdi.WithAutoRefresh(false),
|
||||||
)
|
)
|
||||||
if errs := registry.GetErrors(); len(errs) > 0 {
|
if errs := registry.GetErrors(); len(errs) > 0 {
|
||||||
|
Loading…
Reference in New Issue
Block a user