diff --git a/pkg/config/engine/api.go b/pkg/config/engine/api.go index bc6c4a689..addaad0b3 100644 --- a/pkg/config/engine/api.go +++ b/pkg/config/engine/api.go @@ -24,6 +24,7 @@ type Interface interface { RemoveRuntime(string) error Save(string) (int64, error) GetRuntimeConfig(string) (RuntimeConfig, error) + EnableCDI() } // RuntimeConfig defines the interface to query container runtime handler configuration diff --git a/pkg/config/engine/containerd/config_v1.go b/pkg/config/engine/containerd/config_v1.go index db6cf2dc4..a66268391 100644 --- a/pkg/config/engine/containerd/config_v1.go +++ b/pkg/config/engine/containerd/config_v1.go @@ -163,3 +163,7 @@ func (c *ConfigV1) GetRuntimeConfig(name string) (engine.RuntimeConfig, error) { tree: runtimeData, }, nil } + +func (c *ConfigV1) EnableCDI() { + c.Set("enable_cdi", true) +} diff --git a/pkg/config/engine/containerd/containerd.go b/pkg/config/engine/containerd/containerd.go index a5b088109..fa1f708f5 100644 --- a/pkg/config/engine/containerd/containerd.go +++ b/pkg/config/engine/containerd/containerd.go @@ -126,6 +126,10 @@ func (c *Config) GetRuntimeConfig(name string) (engine.RuntimeConfig, error) { }, nil } +func (c *Config) EnableCDI() { + c.Set("enable_cdi", true) +} + // CommandLineSource returns the CLI-based containerd config loader func CommandLineSource(hostRoot string) toml.Loader { return toml.FromCommandLine(chrootIfRequired(hostRoot, "containerd", "config", "dump")...) diff --git a/pkg/config/engine/crio/crio.go b/pkg/config/engine/crio/crio.go index 3d5629d75..4925c7e88 100644 --- a/pkg/config/engine/crio/crio.go +++ b/pkg/config/engine/crio/crio.go @@ -153,6 +153,11 @@ func (c *Config) GetRuntimeConfig(name string) (engine.RuntimeConfig, error) { }, nil } +func (c *Config) EnableCDI() { + // no-op since CDI is always enabled in versions where CDI is supported + return +} + // CommandLineSource returns the CLI-based crio config loader func CommandLineSource(hostRoot string) toml.Loader { return toml.LoadFirst( diff --git a/pkg/config/engine/docker/docker.go b/pkg/config/engine/docker/docker.go index 6ea64f06e..4b092fdaf 100644 --- a/pkg/config/engine/docker/docker.go +++ b/pkg/config/engine/docker/docker.go @@ -166,3 +166,7 @@ func (c *Config) GetRuntimeConfig(name string) (engine.RuntimeConfig, error) { } return &dockerRuntime{}, nil } + +func (c *Config) EnableCDI() { + c.Set("features", map[string]bool{"cdi": true}) +}