diff --git a/src/app/enums/virtualization.enum.ts b/src/app/enums/virtualization.enum.ts index 072e3ef0870..07cac243973 100644 --- a/src/app/enums/virtualization.enum.ts +++ b/src/app/enums/virtualization.enum.ts @@ -11,6 +11,18 @@ export const virtualizationTypeLabels = new Map([ [VirtualizationType.Vm, T('VM')], ]); +export enum DiskIoBus { + Nvme = 'NVME', + VirtioBlk = 'VIRTIO-BLK', + VirtioScsi = 'VIRTIO-SCSI', +} + +export const diskIoBusLabels = new Map([ + [DiskIoBus.Nvme, 'NVMe'], + [DiskIoBus.VirtioBlk, 'Virtio-BLK'], + [DiskIoBus.VirtioScsi, 'Virtio-SCSI'], +]); + export const virtualizationTypeIcons = [ { value: VirtualizationType.Container, diff --git a/src/app/helptext/virtualization/containers.ts b/src/app/helptext/virtualization/containers.ts index 9f927b08e63..129a950fc20 100644 --- a/src/app/helptext/virtualization/containers.ts +++ b/src/app/helptext/virtualization/containers.ts @@ -46,6 +46,11 @@ Choose a VM for full OS isolation, kernel independence, and running diverse OS t host_port_placeholder: T('Host Port'), host_port_tooltip: T('Specify the host port to be mapped to the container\'s port.'), + io_bus_tooltip: T('Choose the disk I/O bus type that best suits your system’s needs:\ +

• NVMe – Ideal for high-performance storage with faster read and write speeds.\ +

• Virtio-BLK – Efficient for virtualized environments, offering direct block device access with lower overhead.\ +

• Virtio-SCSI – Flexible and scalable, supporting advanced features like hot-swapping and multiple devices.'), + instance_protocol_placeholder: T('Instance Protocol'), instance_protocol_tooltip: T('Select the protocol for the instance\'s network connection.'), instance_port_placeholder: T('Instance Port'), diff --git a/src/app/interfaces/virtualization.interface.ts b/src/app/interfaces/virtualization.interface.ts index d20706bafc3..152861632f6 100644 --- a/src/app/interfaces/virtualization.interface.ts +++ b/src/app/interfaces/virtualization.interface.ts @@ -1,6 +1,7 @@ import { FormControl, FormGroup } from '@angular/forms'; import { NetworkInterfaceAliasType } from 'app/enums/network-interface.enum'; import { + DiskIoBus, VirtualizationDeviceType, VirtualizationGlobalState, VirtualizationGpuType, @@ -41,6 +42,7 @@ export interface VirtualizationInstance { vnc_port: number | null; vnc_password: string | null; secure_boot: boolean; + root_disk_io_bus: DiskIoBus; root_disk_size: number | null; userns_idmap?: UserNsIdmap; } @@ -61,6 +63,7 @@ export interface CreateVirtualizationInstance { * Value in GBs. */ root_disk_size?: number; + root_disk_io_bus?: DiskIoBus; source_type?: VirtualizationSource; environment?: Record; autostart?: boolean; @@ -89,6 +92,7 @@ export interface UpdateVirtualizationInstance { enable_vnc?: boolean; vnc_port?: number | null; secure_boot?: boolean; + root_disk_io_bus?: DiskIoBus; vnc_password?: string | null; root_disk_size?: number; } @@ -110,6 +114,7 @@ export interface VirtualizationDisk { source: string | null; destination: string | null; product_id: string; + io_bus: DiskIoBus; boot_priority?: number; } diff --git a/src/app/pages/instances/components/all-instances/instance-details/instance-disks/increase-root-disk-size/increase-root-disk-size.component.html b/src/app/pages/instances/components/all-instances/instance-details/instance-disks/change-root-disk-setup/change-root-disk-setup.component.html similarity index 68% rename from src/app/pages/instances/components/all-instances/instance-details/instance-disks/increase-root-disk-size/increase-root-disk-size.component.html rename to src/app/pages/instances/components/all-instances/instance-details/instance-disks/change-root-disk-setup/change-root-disk-setup.component.html index b017b81d095..856f3026c8b 100644 --- a/src/app/pages/instances/components/all-instances/instance-details/instance-disks/increase-root-disk-size/increase-root-disk-size.component.html +++ b/src/app/pages/instances/components/all-instances/instance-details/instance-disks/change-root-disk-setup/change-root-disk-setup.component.html @@ -1,5 +1,5 @@

- {{ 'Increase Root Disk Size' | translate }} + {{ 'Change Root Disk Setup' | translate }}

@@ -10,6 +10,14 @@

[required]="true" > + +