summaryrefslogtreecommitdiff
path: root/vendor/github.com/container-orchestrated-devices/container-device-interface/specs-go/config.go
diff options
context:
space:
mode:
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.go50
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"`
+}