mirror of
https://github.com/NVIDIA/nvidia-container-toolkit
synced 2025-02-16 17:42:20 +00:00
Raise error if hook invoked in experimental mode without force flag
Signed-off-by: Evan Lezar <elezar@nvidia.com>
This commit is contained in:
parent
2563c1b87c
commit
a9a4704273
@ -7,6 +7,7 @@ import (
|
|||||||
"reflect"
|
"reflect"
|
||||||
|
|
||||||
"github.com/BurntSushi/toml"
|
"github.com/BurntSushi/toml"
|
||||||
|
"github.com/NVIDIA/nvidia-container-toolkit/internal/config"
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
@ -41,10 +42,11 @@ type HookConfig struct {
|
|||||||
AcceptDeviceListAsVolumeMounts bool `toml:"accept-nvidia-visible-devices-as-volume-mounts"`
|
AcceptDeviceListAsVolumeMounts bool `toml:"accept-nvidia-visible-devices-as-volume-mounts"`
|
||||||
SupportedDriverCapabilities DriverCapabilities `toml:"supported-driver-capabilities"`
|
SupportedDriverCapabilities DriverCapabilities `toml:"supported-driver-capabilities"`
|
||||||
|
|
||||||
NvidiaContainerCLI CLIConfig `toml:"nvidia-container-cli"`
|
NvidiaContainerCLI CLIConfig `toml:"nvidia-container-cli"`
|
||||||
|
NVIDIAContainerRuntime config.RuntimeConfig `toml:"nvidia-container-runtime"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func getDefaultHookConfig() (config HookConfig) {
|
func getDefaultHookConfig() HookConfig {
|
||||||
return HookConfig{
|
return HookConfig{
|
||||||
DisableRequire: false,
|
DisableRequire: false,
|
||||||
SwarmResource: nil,
|
SwarmResource: nil,
|
||||||
@ -63,6 +65,7 @@ func getDefaultHookConfig() (config HookConfig) {
|
|||||||
User: nil,
|
User: nil,
|
||||||
Ldconfig: nil,
|
Ldconfig: nil,
|
||||||
},
|
},
|
||||||
|
NVIDIAContainerRuntime: *config.GetDefaultRuntimeConfig(),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -17,6 +17,7 @@ import (
|
|||||||
|
|
||||||
var (
|
var (
|
||||||
debugflag = flag.Bool("debug", false, "enable debug output")
|
debugflag = flag.Bool("debug", false, "enable debug output")
|
||||||
|
forceflag = flag.Bool("force", false, "force execution of prestart hook in experimental mode")
|
||||||
configflag = flag.String("config", "", "configuration file")
|
configflag = flag.String("config", "", "configuration file")
|
||||||
|
|
||||||
defaultPATH = []string{"/usr/local/sbin", "/usr/local/bin", "/usr/sbin", "/usr/bin", "/sbin", "/bin"}
|
defaultPATH = []string{"/usr/local/sbin", "/usr/local/bin", "/usr/sbin", "/usr/bin", "/sbin", "/bin"}
|
||||||
@ -85,6 +86,10 @@ func doPrestart() {
|
|||||||
hook := getHookConfig()
|
hook := getHookConfig()
|
||||||
cli := hook.NvidiaContainerCLI
|
cli := hook.NvidiaContainerCLI
|
||||||
|
|
||||||
|
if hook.NVIDIAContainerRuntime.Experimental && !*forceflag {
|
||||||
|
log.Panicln("invoking the NVIDIA Container Runtime Hook directly (e.g. specifying the docker --gpus flag) is not supported. Please use the NVIDIA Container Runtime instead.")
|
||||||
|
}
|
||||||
|
|
||||||
container := getContainerConfig(hook)
|
container := getContainerConfig(hook)
|
||||||
nvidia := container.Nvidia
|
nvidia := container.Nvidia
|
||||||
if nvidia == nil {
|
if nvidia == nil {
|
||||||
|
Loading…
Reference in New Issue
Block a user