$ oc create -f <vm.yaml>
Use one of these procedures to create a virtual machine:
Running the virtual machine wizard
Pasting a pre-configured YAML file with the virtual machine wizard
Using the CLI
Importing a VMware virtual machine or template with the virtual machine wizard
The web console features an interactive wizard that guides you through Basic Settings, Networking, and Storage screens to simplify the process of creating virtual machines. All required fields are marked by a *
. The wizard prevents you from moving to the next screen until the required fields have been completed.
NICs and storage disks can be created and attached to virtual machines after they have been created.
If either URL
or Container
are selected as the Provision Source in the Basic Settings screen, a rootdisk
disk is created and attached to the virtual machine as the Bootable Disk. You can modify the rootdisk
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.
When you create your virtual machine using the wizard, your virtual machine’s storage medium must support Read-Write-Many (RWM) PVCs.
Click Workloads → Virtual Machines from the side menu.
Click Create Virtual Machine and select Create with Wizard.
Fill in all required Basic Settings. Selecting a Template automatically fills in these fields.
Click Next to progress to the Networking screen. A nic0
NIC is attached by default.
(Optional) Click Create NIC to create additional NICs.
(Optional) You can remove any or all NICs by clicking the ⋮ button and selecting Remove NIC. A virtual machine does not need a NIC attached to be created. NICs can be created after the virtual machine has been created.
Click Next to progress to the Storage screen.
(Optional) Click Create Disk to create additional disks. These disks can be removed by clicking the ⋮ button and selecting Remove Disk.
(Optional) Click on a disk to modify available fields. Click the ✓ button to save the update.
(Optional) Click Attach Disk to choose an available disk from the Select Storage drop-down list.
Click Create Virtual Machine >. The Results screen displays the JSON configuration file for the virtual machine.
The virtual machine is listed in Workloads → Virtual Machines.
Refer to the virtual machine wizard fields section when running the web console wizard.
Name | Parameter | Description |
---|---|---|
Name |
The name can contain lower-case letters ( |
|
Description |
Optional description field. |
|
Template |
Template from which to create the virtual machine. Selecting a template will automatically complete other fields. |
|
Provision 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: |
|
Cloned Disk |
Provision source is a cloned disk. |
|
Import |
Import virtual machine from a supported provider. |
|
Operating System |
A list of operating systems available in the cluster. This is the primary operating system for the virtual machine. If you select |
|
Flavor |
small, medium, large, tiny, Custom |
Presets that determine the amount of CPU and memory allocated to the virtual machine. |
Workload Profile |
desktop |
A virtual machine configuration for use on a desktop. |
generic |
A virtual machine configuration that balances performance and compatibility for a broad range of workloads. |
|
high performance |
A virtual machine configuration that is optimized for high-performance loads. |
|
Start virtual machine on creation |
Select to automatically start the virtual machine upon creation. |
|
Use cloud-init |
Select to enable the cloud-init fields. |
Name | Description |
---|---|
Hostname |
Sets a specific host name for the virtual machine. |
Authenticated SSH Keys |
The user’s public key that is copied to ~/.ssh/authorized_keys on the virtual machine. |
Use custom script |
Replaces other options with a field in which you paste a custom cloud-init script. |
Name | Description |
---|---|
Create NIC |
Create a new NIC for the virtual machine. |
NIC NAME |
Name for the NIC. |
MAC ADDRESS |
MAC address for the network interface. If a MAC address is not specified, an ephemeral address is generated for the session. |
NETWORK CONFIGURATION |
List of available NetworkAttachmentDefinition objects. |
BINDING METHOD |
List of available binding methods. For the default Pod network, |
PXE NIC |
List of PXE-capable networks. Only visible if |
Name | Description |
---|---|
Create Disk |
Create a new disk for the virtual machine. |
Attach Disk |
Select an existing disk, from a list of available PVCs, to attach to the virtual machine. |
DISK NAME |
Name of the disk. The name can contain lower-case letters ( |
SIZE (GB) |
Size, in GB, of the disk. |
STORAGE CLASS |
Name of the underlying |
Bootable Disk |
List of available disks from which the virtual machine will boot. This is locked to |
Create a virtual machine by writing or pasting a YAML configuration file in the web console in the Workloads → Virtual Machines screen. A valid example
virtual machine configuration is provided by default whenever you open the YAML edit screen.
If your YAML configuration is invalid when you click Create, an error message indicates the parameter in which the error occurs. Only one error is shown at a time.
Navigating away from the YAML screen while editing cancels any changes to the configuration you have made. |
Click Workloads → Virtual Machines from the side menu.
Click Create Virtual Machine and select Create from YAML.
Write or paste your virtual machine configuration in the editable window.
Alternatively, use the example
virtual machine provided by default in the YAML screen.
(Optional) Click Download to download the YAML configuration file in its present state.
Click Create to create the virtual machine.
The virtual machine is listed in Workloads → Virtual Machines.
The spec
object of the VirtualMachine configuration file references
the virtual machine settings, such as the number of cores and the amount
of memory, the disk type, and the volumes to use.
Attach the virtual machine disk to the virtual machine by referencing
the relevant PVC claimName
as a volume.
To create a virtual machine with the OpenShift Container Platform client, run this command:
$ oc create -f <vm.yaml>
Since virtual machines are created in a Stopped state, run a virtual machine instance by starting it.
A ReplicaSet’s purpose is often used to guarantee the availability of a specified number of identical Pods. ReplicaSet is not currently supported in container-native virtualization. |
Setting | Description |
---|---|
Cores |
The number of cores inside the virtual machine. Must be a value greater than or equal to 1. |
Memory |
The amount of RAM that is allocated to the virtual machine by the node. Specify a value in M for Megabyte or Gi for Gigabyte. |
Disks: name |
The name of the volume that is referenced. Must match the name of a volume. |
Setting | Description |
---|---|
Name |
The name of the volume, which must be a DNS label and unique within the virtual machine. |
PersistentVolumeClaim |
The PVC to attach to the virtual machine. The |
Virtual machine storage volume types are listed, as well as domain and volume settings. See the kubevirt API Reference for a definitive list of virtual machine settings.
ephemeral |
A local copy-on-write (COW) image that uses a network volume as a read-only backing store. The backing volume must be a PersistentVolumeClaim. The ephemeral image is created when the virtual machine starts and stores all writes locally. The ephemeral image is discarded when the virtual machine is stopped, restarted, or deleted. The backing volume (PVC) is not mutated in any way. |
persistentVolumeClaim |
Attaches an available PV to a virtual machine. Attaching a PV allows for the virtual machine data to persist between sessions. Importing an existing virtual machine disk into a PVC by using CDI and attaching the PVC to a virtual machine instance is the recommended method for importing existing virtual machines into OpenShift Container Platform. There are some requirements for the disk to be used within a PVC. |
dataVolume |
DataVolumes build on the persistentVolumeClaim disk type by managing the process of preparing the virtual machine disk via an import, clone, or upload operation. VMs that use this volume type are guaranteed not to start until the volume is ready. |
cloudInitNoCloud |
Attaches a disk that contains the referenced cloud-init NoCloud data source, providing user data and metadata to the virtual machine. A cloud-init installation is required inside the virtual machine disk. |
containerDisk |
References an image, such as a virtual machine disk, that is stored in the container image registry. The image is pulled from the registry and embedded in a volume when the virtual machine is created. A containerDisk volume is ephemeral. It is discarded when the virtual machine is stopped, restarted, or deleted. Container disks are not limited to a single virtual machine and are useful for creating large numbers of virtual machine clones that do not require persistent storage. Only RAW and QCOW2 formats are supported disk types for the container image registry. QCOW2 is recommended for reduced image size. |
emptyDisk |
Creates an additional sparse QCOW2 disk that is tied to the life-cycle of the virtual machine interface. The data survives guest-initiated reboots in the virtual machine but is discarded when the virtual machine stops or is restarted from the web console. The empty disk is used to store application dependencies and data that otherwise exceeds the limited temporary file system of an ephemeral disk. The disk capacity size must also be provided. |
See the kubevirt API Reference for a definitive list of virtual machine settings.