mirror of
https://github.com/m1k1o/neko-rooms.git
synced 2026-11-02 22:51:34 -06:00
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:
@@ -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,
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user