mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-10-30 01:43:23 +00:00
060f344c80
This commit extends libvirt XML configuration to support luks2 encryption format. This means that <encryption format="luks2" engine="librbd"> becomes valid. Currently librbd is the only engine that supports this new format. Signed-off-by: Or Ozeri <oro@il.ibm.com> Reviewed-by: Peter Krempa <pkrempa@redhat.com>
255 lines
6.0 KiB
XML
255 lines
6.0 KiB
XML
<?xml version="1.0"?>
|
|
<!-- A Relax NG schema for common libvirt XML storage elements -->
|
|
<grammar xmlns="http://relaxng.org/ns/structure/1.0"
|
|
datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
|
|
|
|
<!-- This schema is not designed for standalone use; another file
|
|
must include both this file and basictypes.rng -->
|
|
|
|
<define name="encryption">
|
|
<element name="encryption">
|
|
<attribute name="format">
|
|
<choice>
|
|
<value>default</value>
|
|
<value>qcow</value>
|
|
<value>luks</value>
|
|
<value>luks2</value>
|
|
</choice>
|
|
</attribute>
|
|
<optional>
|
|
<attribute name="engine">
|
|
<choice>
|
|
<value>qemu</value>
|
|
<value>librbd</value>
|
|
</choice>
|
|
</attribute>
|
|
</optional>
|
|
<interleave>
|
|
<ref name="secret"/>
|
|
<optional>
|
|
<element name="cipher">
|
|
<ref name="keycipher"/>
|
|
</element>
|
|
<element name="ivgen">
|
|
<ref name="keyivgen"/>
|
|
</element>
|
|
</optional>
|
|
</interleave>
|
|
</element>
|
|
</define>
|
|
|
|
<define name="initiatorinfo">
|
|
<element name="initiator">
|
|
<element name="iqn">
|
|
<attribute name="name">
|
|
<text/>
|
|
</attribute>
|
|
<empty/>
|
|
</element>
|
|
</element>
|
|
</define>
|
|
|
|
<define name="reconnect">
|
|
<element name="reconnect">
|
|
<attribute name="enabled">
|
|
<ref name="virYesNo"/>
|
|
</attribute>
|
|
<optional>
|
|
<attribute name="timeout">
|
|
<ref name="unsignedInt"/>
|
|
</attribute>
|
|
</optional>
|
|
</element>
|
|
</define>
|
|
|
|
<define name="unixSocketSource">
|
|
<element name="source">
|
|
<attribute name="type">
|
|
<value>unix</value>
|
|
</attribute>
|
|
<attribute name="path">
|
|
<ref name="absFilePath"/>
|
|
</attribute>
|
|
<attribute name="mode">
|
|
<choice>
|
|
<value>server</value>
|
|
<value>client</value>
|
|
</choice>
|
|
</attribute>
|
|
<optional>
|
|
<ref name="reconnect"/>
|
|
</optional>
|
|
<empty/>
|
|
</element>
|
|
</define>
|
|
|
|
<define name="reservations">
|
|
<element name="reservations">
|
|
<optional>
|
|
<attribute name="managed">
|
|
<ref name="virYesNo"/>
|
|
</attribute>
|
|
</optional>
|
|
<optional>
|
|
<ref name="unixSocketSource"/>
|
|
</optional>
|
|
</element>
|
|
</define>
|
|
|
|
<define name="secret">
|
|
<element name="secret">
|
|
<attribute name="type">
|
|
<value>passphrase</value>
|
|
</attribute>
|
|
<choice>
|
|
<attribute name="uuid">
|
|
<ref name="UUID"/>
|
|
</attribute>
|
|
<attribute name="usage">
|
|
<text/>
|
|
</attribute>
|
|
</choice>
|
|
</element>
|
|
</define>
|
|
|
|
<define name="compat">
|
|
<element name="compat">
|
|
<data type="string">
|
|
<param name="pattern">[0-9]+\.[0-9]+</param>
|
|
</data>
|
|
</element>
|
|
</define>
|
|
|
|
<define name="clusterSize">
|
|
<element name="clusterSize">
|
|
<ref name="scaledInteger"/>
|
|
</element>
|
|
</define>
|
|
|
|
<define name="fileFormatFeatures">
|
|
<element name="features">
|
|
<interleave>
|
|
<optional>
|
|
<element name="lazy_refcounts">
|
|
<empty/>
|
|
</element>
|
|
</optional>
|
|
</interleave>
|
|
</element>
|
|
</define>
|
|
|
|
<!-- split the list of known storage formats into two, those where
|
|
we know how to follow backing chains, and all others -->
|
|
<define name="storageFormatBacking">
|
|
<choice>
|
|
<value>cow</value>
|
|
<value>qcow</value>
|
|
<value>qcow2</value>
|
|
<value>qed</value>
|
|
<value>vmdk</value>
|
|
</choice>
|
|
</define>
|
|
<define name="storageFormat">
|
|
<choice>
|
|
<value>raw</value>
|
|
<value>dir</value>
|
|
<value>bochs</value>
|
|
<value>cloop</value>
|
|
<value>dmg</value>
|
|
<value>iso</value>
|
|
<value>vpc</value>
|
|
<value>vdi</value>
|
|
<value>fat</value>
|
|
<value>vhd</value>
|
|
<value>ploop</value>
|
|
<value>luks</value>
|
|
<ref name="storageFormatBacking"/>
|
|
</choice>
|
|
</define>
|
|
|
|
<define name="storageStartupPolicy">
|
|
<!-- Use a combine="choice" override in client files that want to
|
|
add additional attributes to a <source> sub-element
|
|
associated with a storage source -->
|
|
<notAllowed/>
|
|
</define>
|
|
|
|
<define name="storageSourceExtra">
|
|
<!-- Use a combine="choice" override in client files that want to
|
|
add additional elements as siblings of a <source> sub-element
|
|
associated with a storage source -->
|
|
<notAllowed/>
|
|
</define>
|
|
|
|
<define name="permissions">
|
|
<optional>
|
|
<element name="permissions">
|
|
<interleave>
|
|
<optional>
|
|
<element name="mode">
|
|
<ref name="octalMode"/>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="owner">
|
|
<choice>
|
|
<ref name="unsignedInt"/>
|
|
<value>-1</value>
|
|
</choice>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="group">
|
|
<choice>
|
|
<ref name="unsignedInt"/>
|
|
<value>-1</value>
|
|
</choice>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="label">
|
|
<text/>
|
|
</element>
|
|
</optional>
|
|
</interleave>
|
|
</element>
|
|
</optional>
|
|
</define>
|
|
|
|
<define name="keycipher">
|
|
<attribute name="name">
|
|
<text/>
|
|
</attribute>
|
|
<attribute name="size">
|
|
<ref name="unsignedInt"/>
|
|
</attribute>
|
|
<optional>
|
|
<attribute name="mode">
|
|
<text/>
|
|
</attribute>
|
|
<attribute name="hash">
|
|
<text/>
|
|
</attribute>
|
|
</optional>
|
|
</define>
|
|
|
|
<define name="keyivgen">
|
|
<attribute name="name">
|
|
<text/>
|
|
</attribute>
|
|
<optional>
|
|
<attribute name="hash">
|
|
<text/>
|
|
</attribute>
|
|
</optional>
|
|
</define>
|
|
|
|
<define name="refreshVolumeAllocation">
|
|
<choice>
|
|
<value>default</value>
|
|
<value>capacity</value>
|
|
</choice>
|
|
</define>
|
|
|
|
</grammar>
|