diff options
Diffstat (limited to 'vendor/github.com/container-orchestrated-devices/container-device-interface/specs-go/config.go')
-rw-r--r-- | vendor/github.com/container-orchestrated-devices/container-device-interface/specs-go/config.go | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/vendor/github.com/container-orchestrated-devices/container-device-interface/specs-go/config.go b/vendor/github.com/container-orchestrated-devices/container-device-interface/specs-go/config.go new file mode 100644 index 000000000..0223bb703 --- /dev/null +++ b/vendor/github.com/container-orchestrated-devices/container-device-interface/specs-go/config.go @@ -0,0 +1,50 @@ +package specs + +// Spec is the base configuration for CDI +type Spec struct { + Version string `json:"cdiVersion"` + Kind string `json:"kind"` + KindShort []string `json:"kindShort,omitempty"` + ContainerRuntime []string `json:"containerRuntime,omitempty"` + + Devices []Devices `json:"devices"` + ContainerEdits ContainerEdits `json:"containerEdits,omitempty"` +} + +// Devices is a "Device" a container runtime can add to a container +type Devices struct { + Name string `json:"name"` + NameShort []string `json:"nameShort"` + ContainerEdits ContainerEdits `json:"containerEdits"` +} + +// ContainerEdits are edits a container runtime must make to the OCI spec to expose the device. +type ContainerEdits struct { + Env []string `json:"env,omitempty"` + DeviceNodes []*DeviceNode `json:"deviceNodes,omitempty"` + Hooks []*Hook `json:"hooks,omitempty"` + Mounts []*Mount `json:"mounts,omitempty"` +} + +// DeviceNode represents a device node that needs to be added to the OCI spec. +type DeviceNode struct { + HostPath string `json:"hostPath"` + ContainerPath string `json:"containerPath"` + Permissions []string `json:"permissions,omitempty"` +} + +// Mount represents a mount that needs to be added to the OCI spec. +type Mount struct { + HostPath string `json:"hostPath"` + ContainerPath string `json:"containerPath"` + Options []string `json:"options,omitempty"` +} + +// Hook represents a hook that needs to be added to the OCI spec. +type Hook struct { + HookName string `json:"hookName"` + Path string `json:"path"` + Args []string `json:"args,omitempty"` + Env []string `json:"env,omitempty"` + Timeout *int `json:"timeout,omitempty"` +} |