diff --git a/modules/virt-creating-vm-cli.adoc b/modules/virt-creating-vm-cli.adoc index 70646c4813c1..beecd8aaa303 100644 --- a/modules/virt-creating-vm-cli.adoc +++ b/modules/virt-creating-vm-cli.adoc @@ -35,7 +35,7 @@ This example manifest does not configure VM authentication. apiVersion: kubevirt.io/v1 kind: VirtualMachine metadata: - name: rhel-9-minimal # <1> + name: rhel-9-minimal spec: dataVolumeTemplates: - metadata: @@ -43,21 +43,22 @@ spec: spec: sourceRef: kind: DataSource - name: rhel9 # <2> - namespace: openshift-virtualization-os-images # <3> + name: rhel9 + namespace: openshift-virtualization-os-images storage: resources: {} instancetype: - inferFromVolume: imported-volume-mk4lj # <4> + inferFromVolume: imported-volume-mk4lj inferFromVolumeFailurePolicy: Ignore preference: - inferFromVolume: imported-volume-mk4lj # <5> + inferFromVolume: imported-volume-mk4lj inferFromVolumeFailurePolicy: Ignore runStrategy: Always template: spec: domain: - devices: {} + devices: video + type: virtio memory: guest: 512Mi resources: {} @@ -67,11 +68,15 @@ spec: name: imported-volume-mk4lj name: imported-volume-mk4lj ---- -<1> The VM name. -<2> The boot source for the guest operating system. -<3> The namespace for the boot source. Golden images are stored in the `openshift-virtualization-os-images` namespace. -<4> The instance type is inferred from the selected `DataSource` object. -<5> The preference is inferred from the selected `DataSource` object. ++ + +* `name: rhel-9-minimal` specifies the name of the VM. +* `name: rhel9` specifies the boot source for the guest operating system in the `sourceRef` section. +* `namespace: openshift-virtualization-os-images` specifies the namespace for the boot source. Golden images are stored in the `openshift-virtualization-os-images` namespace. +* `instancetype: inferFromVolume: imported-volume-mk4lj` specifies the instance type inferred from the selected `DataSource` object. +* `preference: inferFromVolume: imported-volume-mk4lj` specifies that the preference is inferred from the selected `DataSource` object. +* `devices: video` specifies the use of a custom video device to enable hardware graphics acceleration. Enabling a custom video device is in Technology Preview for {VirtProductName} 4.21. +* `type: virtio` specifies the type of custom video device. . Create a virtual machine by using the manifest file: + diff --git a/modules/virt-supported-custom-video-devices.adoc b/modules/virt-supported-custom-video-devices.adoc new file mode 100644 index 000000000000..33357ba05d08 --- /dev/null +++ b/modules/virt-supported-custom-video-devices.adoc @@ -0,0 +1,43 @@ +// Module included in the following assemblies: +// +// * virt/creating_vms_advanced/creating_vms_cli/virt-creating-vms-from-cli.adoc + +:_mod-docs-content-type: REFERENCE +[id="virt-supported-custom-video-devices_{context}"] += Supported custom video device types + +[role="_abstract"] +When creating a virtual machine (VM), you can configure a custom video device type to override the default video configuration. + +Configuring a custom video device allows you to specify different video devices, based on your guest operating system requirements and performance needs. + +[IMPORTANT] +==== +Custom video device support is a Technology Preview feature only. Technology Preview features are not supported with Red{nbsp}Hat production service level agreements (SLAs) and might not be functionally complete. Red{nbsp}Hat does not recommend using them in production. These features provide early access to upcoming product features, enabling customers to test functionality and provide feedback during the development process. + +For more information about the support scope of Red{nbsp}Hat Technology Preview features, see link:https://access.redhat.com/support/offerings/techpreview/[Technology Preview Features Support Scope]. +==== + +Using a custom video device provides several advantages: + +Performance:: Certain video devices provide better performance compared to legacy VGA emulation. +Resolution flexibility:: You can set custom display resolutions that aren't limited by VGA constraints. +Memory efficiency:: Some video types are more memory efficient for headless or console-only operations. + +You can configure the following video device types: + +* VirtIO: provides improved performance, and hardware-accelerated video decoding and encoding by offloading tasks to the host. Recommended for modern guest operating systems with available `VirtIO` drivers. +* VGA: the standard for analog video display (default on AMD/x86_64 with BIOS). +* Bochs: an emulated graphics adapter that provides a simple interface for guest operating systems to manage display settings (default on AMD/x86_64 with EFI). +* Cirrus: a legacy video device that provides stable video output. +* ramfb: a simple, unaccelerated virtual display device primarily used in the QEMU emulator, and useful for ARM architecture. + +.Video device support by architecture +[cols="1,1,1,1",options="header"] +|==== +|Architecture |Boot mode |Default type |Supported types +| AMD/x86_64 | BIOS | `vga` | `virtio`, `vga`, `bochs`, `cirrus`, `ramfb`` +| AMD/x86_64 | EFI | `bochs` | `virtio`, `vga`, `bochs`, `cirrus`, `ramfb`` +| ARM64 | BIOS/EFI | `virtio` | `virtio`, `ramfb` +| s390x | BIOS/EFI | `virtio` | `virtio` +|==== diff --git a/virt/creating_vms_advanced/creating_vms_cli/virt-creating-vms-from-cli.adoc b/virt/creating_vms_advanced/creating_vms_cli/virt-creating-vms-from-cli.adoc index 7a181fcead3f..25852eb5c5ff 100644 --- a/virt/creating_vms_advanced/creating_vms_cli/virt-creating-vms-from-cli.adoc +++ b/virt/creating_vms_advanced/creating_vms_cli/virt-creating-vms-from-cli.adoc @@ -14,6 +14,7 @@ You can also xref:../../../virt/creating_vm/virt-creating-vms-from-instance-type ==== include::modules/virt-creating-vm-cli.adoc[leveloffset=+1] +include::modules/virt-supported-custom-video-devices.adoc[leveloffset=+2] .Next steps