Add mount devices to API. (#69)

* add room devices to API.

* devicese one 1:1 mapping.

* add devices to gui.

* get used devices.

* rename gpu support to nvidia gpu.
This commit is contained in:
Miroslav Šedivý
2023-04-15 14:04:23 +02:00
committed by GitHub
parent 283ba9b71f
commit 9f46df0022
7 changed files with 72 additions and 1 deletions
+25
View File
@@ -401,6 +401,19 @@ func (manager *RoomManagerCtx) Create(settings types.RoomSettings) (string, erro
deviceRequests = append(deviceRequests, gpuOpts.Value()...)
}
//
// Set container devices
//
var devices []container.DeviceMapping
for _, device := range settings.Resources.Devices {
devices = append(devices, container.DeviceMapping{
PathOnHost: device,
PathInContainer: device,
CgroupPermissions: "rwm",
})
}
//
// Set container configs
//
@@ -447,6 +460,7 @@ func (manager *RoomManagerCtx) Create(settings types.RoomSettings) (string, erro
NanoCPUs: settings.Resources.NanoCPUs,
Memory: settings.Resources.Memory,
DeviceRequests: deviceRequests,
Devices: devices,
},
// Privileged
Privileged: isPrivilegedImage,
@@ -610,12 +624,23 @@ func (manager *RoomManagerCtx) GetSettings(id string) (*types.RoomSettings, erro
}
}
devices := []string{}
for _, dev := range container.HostConfig.Devices {
// TODO: dev.CgroupPermissions
if dev.PathOnHost == dev.PathInContainer {
devices = append(devices, dev.PathOnHost)
} else {
devices = append(devices, fmt.Sprintf("%s:%s", dev.PathOnHost, dev.PathInContainer))
}
}
roomResources = types.RoomResources{
CPUShares: container.HostConfig.CPUShares,
NanoCPUs: container.HostConfig.NanoCPUs,
ShmSize: container.HostConfig.ShmSize,
Memory: container.HostConfig.Memory,
Gpus: gpus,
Devices: devices,
}
}
+1
View File
@@ -67,6 +67,7 @@ type RoomResources struct {
ShmSize int64 `json:"shm_size"` // in bytes
Memory int64 `json:"memory"` // in bytes
Gpus []string `json:"gpus"` // gpu opts
Devices []string `json:"devices"`
}
type RoomSettings struct {