mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-12-22 13:45:38 +00:00
docs: drvqemu: Document overriding of device properties
Upcoming patches will add possibility to override configuration of a device with custom properties as a more versatile replacement to using QEMU's '-set' parameter, which doesn't work when we use JSON to instantiate devices. Describe the XML used for the override as well as expectations of upstream support in case something breaks. Signed-off-by: Peter Krempa <pkrempa@redhat.com> Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
This commit is contained in:
parent
47d6d1855c
commit
5747dff5f7
@ -580,6 +580,63 @@ reconfigure libvirtd.
|
|||||||
|
|
||||||
*DO NOT* use in production.
|
*DO NOT* use in production.
|
||||||
|
|
||||||
|
Overriding properties of QEMU devices
|
||||||
|
-------------------------------------
|
||||||
|
|
||||||
|
For development or testing the ``<qemu:override>`` tag allows to override
|
||||||
|
specific properties of devices instantiated by libvirt.
|
||||||
|
|
||||||
|
The ``<qemu:device>`` sub-element groups overrides for a device identified via
|
||||||
|
the ``alias`` attribute. The alias corresponds to the ``<alias name=''>``
|
||||||
|
property of a device. It's strongly recommended to use user-specified aliases
|
||||||
|
for devices with overriden properties.
|
||||||
|
|
||||||
|
Sub element ``<qemu:frontend>`` encapsulates all overrides of properties for the
|
||||||
|
device frontend and overrides what libvirt formats via ``-device``.
|
||||||
|
:since:`Since 8.2.0`.
|
||||||
|
|
||||||
|
The individual properties are overriden by a ``<qemu:property>`` element. The
|
||||||
|
``name`` specifies the name of the property to override. In case when libvirt
|
||||||
|
doesn't configure the property a property with the name is added to the
|
||||||
|
commandline. The ``type`` attribute specifies a type of the argument used. The
|
||||||
|
type must correspond with the type that is expected by QEMU. Supported values
|
||||||
|
for the type attribute are: ``string``, ``number``, ``bool`` (allowed values for
|
||||||
|
``bool`` are ``true`` and ``false``) and ``remove``. The ``remove`` type is
|
||||||
|
special and instructs libvirt to remove the property without replacement.
|
||||||
|
|
||||||
|
The overrides are applied only to initial device configuration passed to QEMU
|
||||||
|
via the commandline. Later hotplug operations will not apply any modifications.
|
||||||
|
|
||||||
|
Configuring override for a device alias which is not used or attempting to
|
||||||
|
remove a device property which is not formatted by libvirt will cause failure
|
||||||
|
to startup the VM.
|
||||||
|
|
||||||
|
*Note:* The libvirt project doesn't guarantee any form of compatibility and
|
||||||
|
stability of devices with overriden properties. The domain is tainted when
|
||||||
|
such configuration is used.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
::
|
||||||
|
|
||||||
|
<domain type='kvm' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'>
|
||||||
|
<name>testvm</name>
|
||||||
|
|
||||||
|
[...]
|
||||||
|
|
||||||
|
<qemu:override>
|
||||||
|
<qemu:device alias='ua-devalias'>
|
||||||
|
<qemu:frontend>
|
||||||
|
<qemu:property name='propname1' type='string' value='test'/>
|
||||||
|
<qemu:property name='propname2' type='unsigned' value='123'/>
|
||||||
|
<qemu:property name='propname2' type='signed' value='-123'/>
|
||||||
|
<qemu:property name='propname3' type='bool' value='false'/>
|
||||||
|
<qemu:property name='propname4' type='remove'/>
|
||||||
|
</qemu:frontend>
|
||||||
|
</qemu:device>
|
||||||
|
</qemu:override>
|
||||||
|
</domain>
|
||||||
|
|
||||||
Example domain XML config
|
Example domain XML config
|
||||||
-------------------------
|
-------------------------
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user