From 1af8cd5745d9fcf0e10441fdc33266270defc1c3 Mon Sep 17 00:00:00 2001 From: Wayne Okuma Date: Mon, 6 Apr 2015 19:08:53 -0700 Subject: [PATCH] Metadef JSON files need to be updated Since Juno, some new hardware properties have been added to Nova that should be included in the Kilo versions of the metadef JSON files. This bug, would add in new properties or objects found in Nova and update properties or objects if the definitions have changed. Closes-Bug: 1436877 Change-Id: I582827e666bece539674e4a191963ecf8ebf599f --- etc/metadefs/compute-instance-data.json | 11 ++- etc/metadefs/compute-libvirt-image.json | 89 +++++++++++++++++++ etc/metadefs/compute-libvirt.json | 85 +++--------------- etc/metadefs/compute-vmware-flavor.json | 19 ++++ etc/metadefs/compute-vmware-quota-flavor.json | 26 ++++++ etc/metadefs/operating-system.json | 27 ++++++ 6 files changed, 185 insertions(+), 72 deletions(-) create mode 100644 etc/metadefs/compute-libvirt-image.json create mode 100644 etc/metadefs/compute-vmware-flavor.json create mode 100644 etc/metadefs/compute-vmware-quota-flavor.json create mode 100644 etc/metadefs/operating-system.json diff --git a/etc/metadefs/compute-instance-data.json b/etc/metadefs/compute-instance-data.json index c0febf9114..a29af79dd9 100644 --- a/etc/metadefs/compute-instance-data.json +++ b/etc/metadefs/compute-instance-data.json @@ -16,12 +16,21 @@ "properties": { "img_config_drive": { "title": "Config Drive", - "description": "Set this property on images to mandatory to require Nova to use a config drive when booting the image. OpenStack can be configured to write metadata to a special configuration drive that will be attached to the instance when it boots. The instance can retrieve any information from the config drive. One use case for the config drive is to pass network configuration information to the instance. See also: http://docs.openstack.org/user-guide/content/config-drive.html", + "description": "This property specifies whether or not Nova should use a config drive when booting the image. Mandatory means that Nova will always use a config drive when booting the image. OpenStack can be configured to write metadata to a special configuration drive that will be attached to the instance when it boots. The instance can retrieve any information from the config drive. One use case for the config drive is to pass network configuration information to the instance. See also: http://docs.openstack.org/user-guide/content/config-drive.html", "type": "string", "enum": [ "optional", "mandatory" ] + }, + "os_require_quiesce": { + "title": "Require Quiescent File system", + "description": "This property specifies whether or not the filesystem must be quiesced during snapshot processing. For volume backed and image backed snapshots, yes means that snapshotting is aborted when quiescing fails, whereas, no means quiescing will be skipped and snapshot processing will continue after the quiesce failure.", + "type": "string", + "enum": [ + "yes", + "no" + ] } } } diff --git a/etc/metadefs/compute-libvirt-image.json b/etc/metadefs/compute-libvirt-image.json new file mode 100644 index 0000000000..191d1737d1 --- /dev/null +++ b/etc/metadefs/compute-libvirt-image.json @@ -0,0 +1,89 @@ +{ + "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_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" + ] + }, + "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 video image driver used.", + "type": "string", + "enum": [ + "vga", + "cirrus", + "vmvga", + "xen", + "qxl" + ] + }, + "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_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"] + } + }, + "objects": [] +} diff --git a/etc/metadefs/compute-libvirt.json b/etc/metadefs/compute-libvirt.json index c6f4559c73..08fd99292a 100644 --- a/etc/metadefs/compute-libvirt.json +++ b/etc/metadefs/compute-libvirt.json @@ -1,88 +1,31 @@ { "namespace": "OS::Compute::Libvirt", "display_name": "libvirt Driver Options", - "description": "The libvirt compute driver options. \n\nThese are properties specific to compute drivers. For a list of all hypervisors, see here: https://wiki.openstack.org/wiki/HypervisorSupportMatrix.", + "description": "The libvirt compute driver options. \n\nThese are properties that affect the libvirt compute driver and may be specified on flavors and images. 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" + "name": "OS::Glance::Image", + "prefix": "hw_" + }, + { + "name": "OS::Nova::Flavor", + "prefix": "hw:" } ], "properties": { - "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" - ] - }, - "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 video image driver used.", - "type": "string", - "enum": [ - "vga", - "cirrus", - "vmvga", - "xen", - "qxl" - ] - }, - "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.", + "serial_port_count": { + "title": "Serial Port Count", + "description": "Specifies the count of serial ports that should be provided. If hw:serial_port_count is not set in the flavor's extra_specs, then any count is permitted. If hw:serial_port_count is set, then this provides the default serial port count. It is permitted to override the default serial port count, but only with a lower value.", "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.", + "boot_menu": { + "title": "Boot Menu", + "description": "If true, enables the BIOS bootmenu. In cases where both the image metadata and Extra Spec are set, the Extra Spec setting is used. This allows for flexibility in setting/overriding the default behavior as needed.", "type": "string", - "enum": [ - "e1000", - "e1000e", - "ne2k_pci", - "netfront", - "pcnet", - "rtl8139", - "spapr-vlan", - "virtio" - ] - }, - "hw_qemu_guest_agent": { - "title": "QEMU Guest Agent", - "description": "It is a daemon program running inside the domain which is supposed to help management applications with executing functions which need assistance of the guest OS. 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"] + "enum": ["true", "false"] } }, "objects": [] diff --git a/etc/metadefs/compute-vmware-flavor.json b/etc/metadefs/compute-vmware-flavor.json new file mode 100644 index 0000000000..ae4addc89c --- /dev/null +++ b/etc/metadefs/compute-vmware-flavor.json @@ -0,0 +1,19 @@ +{ + "namespace": "OS::Compute::VMwareFlavor", + "display_name": "VMware Driver Options for Flavors", + "description": "VMware Driver Options for Flavors may be used to customize and manage Nova Flavors. These are properties specific to VMWare compute drivers and will only have an effect if the VMWare compute driver is enabled in Nova. See: http://docs.openstack.org/admin-guide-cloud/content/customize-flavors.html", + "visibility": "public", + "protected": true, + "resource_type_associations": [ + { + "name": "OS::Nova::Flavor" + } + ], + "properties": { + "vmware:hw_version": { + "title": "VMware Hardware Version", + "description": "Specifies the hardware version VMware uses to create images. If the hardware version needs to be compatible with a cluster version, for backward compatibility or other circumstances, the vmware:hw_version key specifies a virtual machine hardware version. In the event that a cluster has mixed host version types, the key will enable the VC to place the cluster on the correct host.", + "type": "string" + } + } +} diff --git a/etc/metadefs/compute-vmware-quota-flavor.json b/etc/metadefs/compute-vmware-quota-flavor.json new file mode 100644 index 0000000000..ea711ac2a9 --- /dev/null +++ b/etc/metadefs/compute-vmware-quota-flavor.json @@ -0,0 +1,26 @@ +{ + "namespace": "OS::Compute::VMwareQuotaFlavor", + "display_name": "VMware Quota for Flavors", + "description": "The VMware compute driver allows various compute quotas to be specified on flavors. When specified, the VMWare driver will ensure that the quota is enforced. These are properties specific to VMWare compute drivers and will only have an effect if the VMWare compute driver is enabled in Nova. For a list of hypervisors, see: https://wiki.openstack.org/wiki/HypervisorSupportMatrix. For flavor customization, see: http://docs.openstack.org/admin-guide-cloud/content/customize-flavors.html", + "visibility": "public", + "protected": true, + "resource_type_associations": [ + { + "name": "OS::Nova::Flavor" + } + ], + "properties": { + "quota:cpu_limit": { + "title": "Quota: CPU Limit", + "description": "Specifies the upper limit for CPU allocation in MHz. This parameter ensures that a machine never uses more than the defined amount of CPU time. It can be used to enforce a limit on the machine's CPU performance. The value should be a numerical value in MHz. If zero is supplied then the cpu_limit is unlimited.", + "type": "integer", + "minimum": 0 + }, + "quota:cpu_reservation": { + "title": "Quota: CPU Reservation Limit", + "description": "Specifies the guaranteed minimum CPU reservation in MHz. This means that if needed, the machine will definitely get allocated the reserved amount of CPU cycles. The value should be a numerical value in MHz.", + "type": "integer", + "minimum": 0 + } + } +} diff --git a/etc/metadefs/operating-system.json b/etc/metadefs/operating-system.json new file mode 100644 index 0000000000..7a25d279cb --- /dev/null +++ b/etc/metadefs/operating-system.json @@ -0,0 +1,27 @@ +{ + "display_name": "Common Operating System Properties", + "namespace": "OS::OperatingSystem", + "description": "When adding an image to Glance, you may specify some common image properties that may prove useful to consumers of your image.", + "protected": true, + "resource_type_associations" : [ + { + "name": "OS::Glance::Image" + }, + { + "name": "OS::Cinder::Volume", + "properties_target": "image" + } + ], + "properties": { + "os_distro": { + "title": "OS Distro", + "description": "The common name of the operating system distribution in lowercase (uses the same data vocabulary as the libosinfo project). Specify only a recognized value for this field. Deprecated values are listed to assist you in searching for the recognized value.", + "type": "string" + }, + "os_version": { + "title": "OS Version", + "description": "Operating system version as specified by the distributor. (for example, '11.10')", + "type": "string" + } + } +}