Chapter 8. Virtual machine templates
8.1. Creating virtual machine templates
You can use virtual machine templates to create multiple virtual machines that have similar configurations. After a template is created, reference the template when creating virtual machines.
8.1.1. Creating a virtual machine template with the interactive wizard in the web console
The web console features an interactive wizard that guides you through the General, Networking, Storage, Advanced, and Review steps to simplify the process of creating virtual machine templates. All required fields are marked with a *
. The wizard prevents you from moving to the next step until you provide values in the required fields.
Procedure
-
In the OpenShift Virtualization console, click Workloads
Virtualization from the side menu. - Click the Virtual Machine Templates tab.
- Click Create Template and select New with Wizard.
- Fill in all required fields in the General step.
Click Next to progress to the Networking screen. A NIC that is named
nic0
is attached by default.- Optional: Click Add Network Interface to create additional NICs.
- Optional: You can remove any or all NICs by clicking the Options menu and selecting Delete. Virtual machines created from a template do not need a NIC attached. NICs can be created after a virtual machine has been created.
Click Next to progress to the Storage screen.
- Optional: Click Add Disk to create additional disks.
- Optional: Click a disk to modify available fields. Click the ✓ button to save the changes.
Optional: Click Disk to choose an available disk from the Select Storage list.
NoteIf either URL or Container are selected as the Source in the General step, a
rootdisk
disk is created and attached to virtual machines as the Bootable Disk. You can modify therootdisk
but you cannot remove it.A Bootable Disk is not required for virtual machines provisioned from a PXE source if there are no disks attached to the virtual machine. If one or more disks are attached to the virtual machine, you must select one as the Bootable Disk.
Click Create Virtual Machine Template >. The Results screen displays the JSON configuration file for the virtual machine template.
The template is listed in the Virtual Machine Templates tab.
8.1.2. Virtual machine template interactive wizard fields
The following tables describe the fields for the Basic Settings, Networking, and Storage panes in the Create Virtual Machine Template interactive wizard.
8.1.2.1. Virtual machine template wizard fields
Name | Parameter | Description |
---|---|---|
Source | PXE | Provision virtual machine from PXE menu. Requires a PXE-capable NIC in the cluster. |
URL | Provision virtual machine from an image available from an HTTP or S3 endpoint. | |
Container |
Provision virtual machine from a bootable operating system container located in a registry accessible from the cluster. Example: | |
Disk | Provision virtual machine from a disk. | |
Operating System | The primary operating system that is selected for the virtual machine. | |
Flavor | small, medium, large, tiny, Custom | Presets that determine the amount of CPU and memory allocated to the virtual machine. The presets displayed for Flavor are determined by the operating system. |
Memory | Size in GiB of the memory allocated to the virtual machine. | |
CPUs | The amount of CPU allocated to the virtual machine. | |
Workload Profile | High Performance | A virtual machine configuration that is optimized for high-performance workloads. |
Server | A profile optimized to run server workloads. | |
Desktop | A virtual machine configuration for use on a desktop. | |
Name |
The name can contain lowercase letters ( | |
Description | Optional description field. |
8.1.2.2. Cloud-init fields
Name | Description |
---|---|
Hostname | Sets a specific hostname for the virtual machine. |
Authenticated SSH Keys | The user’s public key that is copied to ~/.ssh/authorized_keys on the virtual machine. |
Custom script | Replaces other options with a field in which you paste a custom cloud-init script. |
8.1.2.3. Networking fields
Name | Description |
---|---|
Name | Name for the network interface controller. |
Model | Indicates the model of the network interface controller. Supported values are e1000e and virtio. |
Network | List of available network attachment definitions. |
Type |
List of available binding methods. For the default pod network, |
MAC Address | MAC address for the network interface controller. If a MAC address is not specified, one is assigned automatically. |
8.1.2.4. Storage fields
Name | Description |
---|---|
Source | Select a blank disk for the virtual machine or choose from the options available: URL, Container, Attach Cloned Disk, or Attach Disk. To select an existing disk and attach it to the virtual machine, choose Attach Cloned Disk or Attach Disk from a list of available persistent volume claims (PVCs). |
Name |
Name of the disk. The name can contain lowercase letters ( |
Size (GiB) | Size, in GiB, of the disk. |
Interface | Type of disk device. Supported interfaces are virtIO, SATA, and SCSI. |
Storage Class | The storage class that is used to create the disk. |
Advanced | Defines whether the persistent volume uses a formatted file system or raw block state. Default is Filesystem. |
Advanced | Access mode of the persistent volume. Supported access modes are ReadWriteOnce, ReadOnlyMany, and ReadWriteMany. |
Advanced storage settings
The following advanced storage settings are available for Blank, Import via URL, and Clone existing PVC disks. These parameters are optional. If you do not specify these parameters, the system uses the default values from the kubevirt-storage-class-defaults
config map.
Name | Parameter | Description |
---|---|---|
Volume Mode | Filesystem | Stores the virtual disk on a file system-based volume. |
Block |
Stores the virtual disk directly on the block volume. Only use | |
Access Mode | Single User (RWO) | The disk can be mounted as read/write by a single node. |
Shared Access (RWX) | The disk can be mounted as read/write by many nodes. Note This is required for some features, such as live migration of virtual machines between nodes. | |
Read Only (ROX) | The disk can be mounted as read-only by many nodes. |
8.2. Editing virtual machine templates
You can update a virtual machine template in the web console, either by editing the full configuration in the YAML editor or by editing a subset of the parameters in the Virtual Machine Template Overview screen.
8.2.1. Editing a virtual machine template in the web console
Edit select values of a virtual machine template in the Virtual Machine Template Overview screen of the web console by clicking on the pencil icon next to the relevant field. Other values can be edited using the CLI.
Procedure
-
Click Workloads
Virtualization from the side menu. - Click the Virtual Machine Templates tab.
- Select a virtual machine template to open the Virtual Machine Template Overview screen.
- Click the Details tab.
- Click the pencil icon to make a field editable.
- Make the relevant changes and click Save.
Editing a virtual machine template will not affect virtual machines already created from that template.
8.2.2. Editing virtual machine template YAML configuration in the web console
You can edit the YAML configuration of a virtual machine template from the web console.
Not all parameters can be modified. If you click Save with an invalid configuration, an error message indicates the parameter that cannot be modified.
Navigating away from the YAML screen while editing cancels any changes to the configuration that you made.
Procedure
-
In the OpenShift Virtualization console, click Workloads
Virtualization from the side menu. - Click the Virtual Machine Templates tab.
- Select a template.
- Click the YAML tab to display the editable configuration.
- Edit the file and click Save.
A confirmation message, which includes the updated version number for the object, shows the modification has been successful.
8.2.3. Adding a virtual disk to a virtual machine template
Use this procedure to add a virtual disk to a virtual machine template.
Procedure
-
Click Workloads
Virtualization from the side menu. - Click the Virtual Machine Templates tab.
- Select a virtual machine template to open the Virtual Machine Template Overview screen.
- Click the Disks tab.
- Click Add Disk to open the Add Disk window.
In the Add Disk window, specify the Source, Name, Size, Interface, Type, and Storage Class.
-
Optional: In the Advanced list, specify the Volume Mode and Access Mode for the virtual disk. If you do not specify these parameters, the system uses the default values from the
kubevirt-storage-class-defaults
config map.
-
Optional: In the Advanced list, specify the Volume Mode and Access Mode for the virtual disk. If you do not specify these parameters, the system uses the default values from the
- Click Add.
8.2.4. Adding a network interface to a virtual machine template
Use this procedure to add a network interface to a virtual machine template.
Procedure
-
Click Workloads
Virtualization from the side menu. - Click the Virtual Machine Templates tab.
- Select a virtual machine template to open the Virtual Machine Template Overview screen.
- Click the Network Interfaces tab.
- Click Add Network Interface.
- In the Add Network Interface window, specify the Name, Model, Network, Type, and MAC Address of the network interface.
- Click Add.
8.2.5. Editing CD-ROMs for Virtual Machine Templates
Use the following procedure to configure CD-ROMs for virtual machines.
Procedure
- From the Virtual Machine Templates tab, select your virtual machine template.
- Select the Overview tab.
To add or edit a CD-ROM configuration, click the pencil icon to the right of the CD-ROMs label. The Edit CD-ROM window opens.
- If CD-ROMs are unavailable for editing, the following message displays: The virtual machine doesn’t have any CD-ROMs attached.
- If there are CD-ROMs available, you can remove a CD-ROM by clicking -.
In the Edit CD-ROM window, do the following:
- Select the type of CD-ROM configuration from the drop-down list for Media Type. CD-ROM configuration types are Container, URL, and Persistent Volume Claim.
- Complete the required information for each Type.
- When all CD-ROMs are added, click Save.
8.3. Enabling dedicated resources for virtual machine templates
Virtual machines can have resources of a node, such as CPU, dedicated to them in order to improve performance.
8.3.1. About dedicated resources
When you enable dedicated resources for your virtual machine, your virtual machine’s workload is scheduled on CPUs that will not be used by other processes. By using dedicated resources, you can improve the performance of the virtual machine and the accuracy of latency predictions.
8.3.2. Prerequisites
-
The CPU Manager must be configured on the node. Verify that the node has the
cpumanager
=true
label before scheduling virtual machine workloads.
8.3.3. Enabling dedicated resources for a virtual machine template
You can enable dedicated resources for a virtual machine template in the Virtual Machine Template Overview page of the web console.
Procedure
-
Click Workloads
Virtual Machine Templates from the side menu. - Select a virtual machine template to open the Virtual Machine Template Overview page.
- Click the Details tab.
- Click the pencil icon to the right of the Dedicated Resources field to open the Dedicated Resources window.
- Select Schedule this workload with dedicated resources (guaranteed policy).
- Click Save.
8.4. Deleting a virtual machine template
You can delete a virtual machine template in the web console.
8.4.1. Deleting a virtual machine template in the web console
Deleting a virtual machine template permanently removes it from the cluster.
Procedure
-
In the OpenShift Virtualization console, click Workloads
Virtualization from the side menu. - Click the Virtual Machine Templates tab.
You can delete the virtual machine template from this pane, which makes it easier to perform actions on multiple templates in the one pane, or from the Virtual Machine Template Details pane where you can view comprehensive details of the selected template:
- Click the Options menu of the template to delete and select Delete Template.
-
Click the template name to open the Virtual Machine Template Details pane and click Actions
Delete Template.
- In the confirmation pop-up window, click Delete to permanently delete the template.