Documentation
¶
Index ¶
- Constants
- type Device
- type Discover
- func FirstValid(discoverers ...Discover) Discover
- func Merge(discoverers ...Discover) Discover
- func NewCUDACompatHookDiscoverer(logger logger.Interface, hookCreator HookCreator, version string) Discover
- func NewCharDeviceDiscoverer(logger logger.Interface, devRoot string, devices []string) Discover
- func NewDRMNodesDiscoverer(logger logger.Interface, devices image.VisibleDevices, devRoot string, ...) (Discover, error)
- func NewGDRCopyDiscoverer(logger logger.Interface, devRoot string) (Discover, error)
- func NewGDSDiscoverer(logger logger.Interface, driverRoot string, devRoot string) (Discover, error)
- func NewGraphicsMountsDiscoverer(logger logger.Interface, driver *root.Driver, hookCreator HookCreator) (Discover, error)
- func NewIPCDiscoverer(logger logger.Interface, driverRoot string) (Discover, error)
- func NewLDCacheUpdateHook(logger logger.Interface, mounts Discover, hookCreator HookCreator, ...) (Discover, error)
- func NewMOFEDDiscoverer(logger logger.Interface, devRoot string) (Discover, error)
- func NewMounts(logger logger.Interface, lookup lookup.Locator, root string, required []string) Discover
- func NewNvSwitchDiscoverer(logger logger.Interface, devRoot string) (Discover, error)
- func WithCache(d Discover) Discover
- func WithDriverDotSoSymlinks(logger logger.Interface, mounts Discover, version string, ...) Discover
- type DiscoverMock
- func (mock *DiscoverMock) Devices() ([]Device, error)
- func (mock *DiscoverMock) DevicesCalls() []struct{}
- func (mock *DiscoverMock) EnvVars() ([]EnvVar, error)
- func (mock *DiscoverMock) EnvVarsCalls() []struct{}
- func (mock *DiscoverMock) Hooks() ([]Hook, error)
- func (mock *DiscoverMock) HooksCalls() []struct{}
- func (mock *DiscoverMock) Mounts() ([]Mount, error)
- func (mock *DiscoverMock) MountsCalls() []struct{}
- type EnvVar
- type Filter
- type Hook
- type HookCreator
- type HookName
- type Mount
- type None
- type Option
- type Symlink
Constants ¶
const ( // AllHooks is a special hook name that allows all hooks to be matched. AllHooks = HookName("all") // A ChmodHook is used to set the file mode of the specified paths. // Deprecated: The chmod hook is deprecated and will be removed in a future release. ChmodHook = HookName("chmod") // A CreateSymlinksHook is used to create symlinks in the container. CreateSymlinksHook = HookName("create-symlinks") // DisableDeviceNodeModificationHook refers to the hook used to ensure that // device nodes are not created by libnvidia-ml.so or nvidia-smi in a // container. // Added in v1.17.8 DisableDeviceNodeModificationHook = HookName("disable-device-node-modification") // An EnableCudaCompatHook is used to enabled CUDA Forward Compatibility. // Added in v1.17.5 EnableCudaCompatHook = HookName("enable-cuda-compat") // An UpdateLDCacheHook is the hook used to update the ldcache in the // container. This allows injected libraries to be discoverable. UpdateLDCacheHook = HookName("update-ldcache") )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Discover ¶
type Discover interface {
Devices() ([]Device, error)
EnvVars() ([]EnvVar, error)
Mounts() ([]Mount, error)
Hooks() ([]Hook, error)
}
Discover defines an interface for discovering the devices, mounts, and hooks available on a system
func FirstValid ¶ added in v1.17.0
FirstValid returns a discoverer that returns the first non-error result from a list of discoverers.
func Merge ¶ added in v1.11.0
Merge creates a discoverer that is the composite of a list of discoverers.
func NewCUDACompatHookDiscoverer ¶ added in v1.17.5
func NewCUDACompatHookDiscoverer(logger logger.Interface, hookCreator HookCreator, version string) Discover
NewCUDACompatHookDiscoverer creates a discoverer for a enable-cuda-compat hook. This hook is responsible for setting up CUDA compatibility in the container and depends on the host driver version.
func NewCharDeviceDiscoverer ¶ added in v1.11.0
NewCharDeviceDiscoverer creates a discoverer which locates the specified set of device nodes.
func NewDRMNodesDiscoverer ¶ added in v1.15.0
func NewDRMNodesDiscoverer(logger logger.Interface, devices image.VisibleDevices, devRoot string, hookCreator HookCreator) (Discover, error)
NewDRMNodesDiscoverer returns a discoverer for the DRM device nodes associated with the specified visible devices.
TODO: The logic for creating DRM devices should be consolidated between this and the logic for generating CDI specs for a single device. This is only used when applying OCI spec modifications to an incoming spec in "legacy" mode.
func NewGDRCopyDiscoverer ¶ added in v1.15.0
func NewGDSDiscoverer ¶ added in v1.11.0
NewGDSDiscoverer creates a discoverer for GPUDirect Storage devices and mounts.
func NewGraphicsMountsDiscoverer ¶ added in v1.12.0
func NewGraphicsMountsDiscoverer(logger logger.Interface, driver *root.Driver, hookCreator HookCreator) (Discover, error)
NewGraphicsMountsDiscoverer creates a discoverer for the mounts required by graphics tools such as vulkan.
func NewIPCDiscoverer ¶ added in v1.13.0
NewIPCDiscoverer creats a discoverer for NVIDIA IPC sockets.
func NewLDCacheUpdateHook ¶
func NewLDCacheUpdateHook(logger logger.Interface, mounts Discover, hookCreator HookCreator, ldconfigPath string) (Discover, error)
NewLDCacheUpdateHook creates a discoverer that updates the ldcache for the specified mounts. A logger can also be specified
func NewMOFEDDiscoverer ¶ added in v1.11.0
NewMOFEDDiscoverer creates a discoverer for MOFED devices.
func NewMounts ¶ added in v1.11.0
func NewMounts(logger logger.Interface, lookup lookup.Locator, root string, required []string) Discover
NewMounts creates a discoverer for the required mounts using the specified locator.
func NewNvSwitchDiscoverer ¶ added in v1.15.0
NewNvSwitchDiscoverer creates a discoverer for NVSWITCH devices.
func WithDriverDotSoSymlinks ¶ added in v1.17.0
func WithDriverDotSoSymlinks(logger logger.Interface, mounts Discover, version string, hookCreator HookCreator) Discover
WithDriverDotSoSymlinks decorates the provided discoverer. A hook is added that checks for specific driver symlinks that need to be created.
type DiscoverMock ¶
type DiscoverMock struct {
// DevicesFunc mocks the Devices method.
DevicesFunc func() ([]Device, error)
// EnvVarsFunc mocks the EnvVars method.
EnvVarsFunc func() ([]EnvVar, error)
// HooksFunc mocks the Hooks method.
HooksFunc func() ([]Hook, error)
// MountsFunc mocks the Mounts method.
MountsFunc func() ([]Mount, error)
// contains filtered or unexported fields
}
DiscoverMock is a mock implementation of Discover.
func TestSomethingThatUsesDiscover(t *testing.T) {
// make and configure a mocked Discover
mockedDiscover := &DiscoverMock{
DevicesFunc: func() ([]Device, error) {
panic("mock out the Devices method")
},
EnvVarsFunc: func() ([]EnvVar, error) {
panic("mock out the EnvVars method")
},
HooksFunc: func() ([]Hook, error) {
panic("mock out the Hooks method")
},
MountsFunc: func() ([]Mount, error) {
panic("mock out the Mounts method")
},
}
// use mockedDiscover in code that requires Discover
// and then make assertions.
}
func (*DiscoverMock) Devices ¶
func (mock *DiscoverMock) Devices() ([]Device, error)
Devices calls DevicesFunc.
func (*DiscoverMock) DevicesCalls ¶
func (mock *DiscoverMock) DevicesCalls() []struct { }
DevicesCalls gets all the calls that were made to Devices. Check the length with:
len(mockedDiscover.DevicesCalls())
func (*DiscoverMock) EnvVars ¶ added in v1.18.0
func (mock *DiscoverMock) EnvVars() ([]EnvVar, error)
EnvVars calls EnvVarsFunc.
func (*DiscoverMock) EnvVarsCalls ¶ added in v1.18.0
func (mock *DiscoverMock) EnvVarsCalls() []struct { }
EnvVarsCalls gets all the calls that were made to EnvVars. Check the length with:
len(mockedDiscover.EnvVarsCalls())
func (*DiscoverMock) Hooks ¶
func (mock *DiscoverMock) Hooks() ([]Hook, error)
Hooks calls HooksFunc.
func (*DiscoverMock) HooksCalls ¶
func (mock *DiscoverMock) HooksCalls() []struct { }
HooksCalls gets all the calls that were made to Hooks. Check the length with:
len(mockedDiscover.HooksCalls())
func (*DiscoverMock) Mounts ¶
func (mock *DiscoverMock) Mounts() ([]Mount, error)
Mounts calls MountsFunc.
func (*DiscoverMock) MountsCalls ¶
func (mock *DiscoverMock) MountsCalls() []struct { }
MountsCalls gets all the calls that were made to Mounts. Check the length with:
len(mockedDiscover.MountsCalls())
type EnvVar ¶ added in v1.18.0
EnvVar represents a discovered environment variable.
func (EnvVar) Devices ¶ added in v1.18.0
Devices returns an empty list of devices for a EnvVar discoverer.
func (EnvVar) EnvVars ¶ added in v1.18.0
EnvVars returns an empty list of envs for a EnvVar discoverer.
type Hook ¶
Hook represents a discovered hook.
func (*Hook) Devices ¶ added in v1.13.0
Devices returns an empty list of devices for a Hook discoverer.
func (*Hook) EnvVars ¶ added in v1.18.0
EnvVars returns an empty list of envs for a Hook discoverer.
type HookCreator ¶ added in v1.18.0
A HookCreator defines an interface for creating discover hooks.
func NewHookCreator ¶ added in v1.18.0
func NewHookCreator(opts ...Option) HookCreator
type None ¶
type None struct{}
None is a null discoverer that returns an empty list of devices and mounts.
type Option ¶ added in v1.18.0
type Option func(*hookCreatorOptions)
func WithDebugLogging ¶ added in v1.18.0
func WithDisabledHooks ¶ added in v1.18.0
WithDisabledHooks explicitly disables the specified hooks. This can be specified multiple times.
func WithEnabledHooks ¶ added in v1.18.0
WithEnabledHooks explicitly enables the specified hooks. This is useful for enabling hooks that are disabled by default.
func WithNVIDIACDIHookPath ¶ added in v1.18.0
WithNVIDIACDIHookPath sets the path to the nvidia-cdi-hook binary.