Files
portainer/app/react/docker/containers/CreateView/ResourcesTab/toViewModel.ts
T
Chaim Lev-Ari 808ceba848 feat(docker): allow user to specify security-opts (#2022)
Co-authored-by: dylan <dfldylan@qq.com>
Co-authored-by: jerry-yuan <i@jerryzone.cn>
2026-03-11 08:56:42 +02:00

52 lines
1.5 KiB
TypeScript

import { ContainerDetailsJSON } from '../../queries/useContainer';
import { toDevicesViewModel } from './DevicesField';
import { gpuFieldsetUtils } from './GpuFieldset';
import { toViewModelCpu, toViewModelMemory } from './memory-utils';
import { Values } from './ResourcesTab';
export function toViewModel(config: ContainerDetailsJSON): Values {
return {
runtime: {
privileged: config.HostConfig?.Privileged || false,
init: config.HostConfig?.Init || false,
type: config.HostConfig?.Runtime || '',
},
devices: toDevicesViewModel(config.HostConfig?.Devices || []),
sysctls: Object.entries(config.HostConfig?.Sysctls || {}).map(
([name, value]) => ({
name,
value,
})
),
securityOpt: config.HostConfig?.SecurityOpt || [],
gpu: gpuFieldsetUtils.toViewModel(config.HostConfig?.DeviceRequests || []),
sharedMemorySize: toViewModelMemory(config.HostConfig?.ShmSize),
resources: {
cpu: toViewModelCpu(config.HostConfig?.NanoCpus),
reservation: toViewModelMemory(config.HostConfig?.MemoryReservation),
limit: toViewModelMemory(config.HostConfig?.Memory),
},
};
}
export function getDefaultViewModel(): Values {
return {
runtime: {
privileged: false,
init: false,
type: '',
},
devices: [],
sysctls: [],
securityOpt: [],
sharedMemorySize: 64,
gpu: gpuFieldsetUtils.getDefaultViewModel(),
resources: {
reservation: 0,
limit: 0,
cpu: 0,
},
};
}