glance/etc/metadefs/compute-libvirt-image.json
Adam Spiers 3a281b9bc6 Add SEV-related extra spec and image properties
The AMD SEV support recently introduced to nova[0] depends on certain
metadata properties for flavors and images which were either missing
or only partially covered by existing glance metadata, so fill the
missing gaps:

- Add the hw:mem_encryption flavor extra spec and corresponding
  hw_mem_encryption image property.

- hw_firmware_type has been supported by nova for quite a while,
  so register it as an official metadata property.

- Add hw_cdrom_bus which was missing as per
  https://bugs.launchpad.net/glance/+bug/1808868.  This shares
  values with hw_disk_bus, so document that too.

[0] https://docs.openstack.org/nova/latest/admin/configuration/hypervisor-kvm.html#amd-sev-secure-encrypted-virtualization

Closes-Bug: 1808868
Change-Id: I8116565ad0326d0125b320d840d787edcb086aa9
2019-09-12 19:58:27 +01:00

139 lines
6.4 KiB
JSON

{
"namespace": "OS::Compute::LibvirtImage",
"display_name": "libvirt Driver Options for Images",
"description": "The libvirt Compute Driver Options for Glance Images. \n\nThese are properties specific to compute drivers. For a list of all hypervisors, see here: https://wiki.openstack.org/wiki/HypervisorSupportMatrix.",
"visibility": "public",
"protected": true,
"resource_type_associations": [
{
"name": "OS::Glance::Image"
}
],
"properties": {
"hw_cdrom_bus": {
"title": "CD-ROM Bus",
"description": "Specifies the type of disk controller to attach CD-ROM devices to.",
"type": "string",
"enum": [
"scsi",
"virtio",
"uml",
"xen",
"ide",
"usb",
"fdc",
"sata",
"lxc"
]
},
"hw_disk_bus": {
"title": "Disk Bus",
"description": "Specifies the type of disk controller to attach disk devices to.",
"type": "string",
"enum": [
"scsi",
"virtio",
"uml",
"xen",
"ide",
"usb",
"fdc",
"sata",
"lxc"
]
},
"hw_firmware_type": {
"title": "Firmware Type",
"description": "Specifies whether the image should be booted with a legacy BIOS or with UEFI.",
"type": "string",
"enum": [
"bios",
"uefi"
]
},
"hw_rng_model": {
"title": "Random Number Generator Device",
"description": "Adds a random-number generator device to the image's instances. The cloud administrator can enable and control device behavior by configuring the instance's flavor. By default: The generator device is disabled. /dev/random is used as the default entropy source. To specify a physical HW RNG device, use the following option in the nova.conf file: rng_dev_path=/dev/hwrng",
"type": "string",
"default": "virtio"
},
"hw_machine_type": {
"title": "Machine Type",
"description": "Enables booting an ARM system using the specified machine type. By default, if an ARM image is used and its type is not specified, Compute uses vexpress-a15 (for ARMv7) or virt (for AArch64) machine types. Valid types can be viewed by using the virsh capabilities command (machine types are displayed in the machine tag).",
"type": "string"
},
"hw_scsi_model": {
"title": "SCSI Model",
"description": "Enables the use of VirtIO SCSI (virtio-scsi) to provide block device access for compute instances; by default, instances use VirtIO Block (virtio-blk). VirtIO SCSI is a para-virtualized SCSI controller device that provides improved scalability and performance, and supports advanced SCSI hardware.",
"type": "string",
"default": "virtio-scsi"
},
"hw_video_model": {
"title": "Video Model",
"description": "The graphic device model presented to the guest. hw_video_model=none disables the graphics device in the guest and should generally be used when using gpu passthrough.",
"type": "string",
"enum": [
"vga",
"cirrus",
"vmvga",
"xen",
"qxl",
"virtio",
"gop",
"none"
]
},
"hw_video_ram": {
"title": "Max Video Ram",
"description": "Maximum RAM (unit: MB) for the video image. Used only if a hw_video:ram_max_mb value has been set in the flavor's extra_specs and that value is higher than the value set in hw_video_ram.",
"type": "integer",
"minimum": 0
},
"os_command_line": {
"title": "Kernel Command Line",
"description": "The kernel command line to be used by the libvirt driver, instead of the default. For linux containers (LXC), the value is used as arguments for initialization. This key is valid only for Amazon kernel, ramdisk, or machine images (aki, ari, or ami).",
"type": "string"
},
"hw_vif_model": {
"title": "Virtual Network Interface",
"description": "Specifies the model of virtual network interface device to use. The valid options depend on the hypervisor configuration. libvirt driver options: KVM and QEMU: e1000, ne2k_pci, pcnet, rtl8139, spapr-vlan, and virtio. Xen: e1000, netfront, ne2k_pci, pcnet, and rtl8139.",
"type": "string",
"enum": [
"e1000",
"e1000e",
"ne2k_pci",
"netfront",
"pcnet",
"rtl8139",
"spapr-vlan",
"virtio"
]
},
"hw_pmu": {
"title": "Virtual Performance Monitoring Unit",
"description": "Controls emulation of a vPMU in the guest. To reduce latency in realtime workloads disable the vPMU by setting hw_pmu=false",
"type": "string",
"enum": ["true", "false"]
},
"hw_qemu_guest_agent": {
"title": "QEMU Guest Agent",
"description": "This is a background process which helps management applications execute guest OS level commands. For example, freezing and thawing filesystems, entering suspend. However, guest agent (GA) is not bullet proof, and hostile guest OS can send spurious replies.",
"type": "string",
"enum": ["yes", "no"]
},
"hw_pointer_model": {
"title": "Pointer Model",
"description": "Input devices allow interaction with a graphical framebuffer. For example to provide a graphic tablet for absolute cursor movement. Currently only supported by the KVM/QEMU hypervisor configuration and VNC or SPICE consoles must be enabled.",
"type": "string",
"enum": ["usbtablet"]
},
"img_hide_hypervisor_id": {
"title": "Hide hypervisor id",
"description": "Enables hiding the host hypervisor signature in the guest OS.",
"type": "string",
"enum": ["yes", "no"]
}
},
"objects": []
}