libvirt/docs/schemas/secret.rng
Peter Krempa 9aa1a1ea77 schema: secret: Relax requirements for usage name
There's plenty of existing documentation [1] which shows as example a
name which contains a space and a dot ('client.admin secret') as ceph
usage name.

Use a more relaxed type in the RNG schema since the usage name is
actually just a string used to look up the secret.

[1]:
https://docs.ceph.com/en/latest/rbd/libvirt/#configuring-the-vm
https://documentation.suse.com/ses/6/html/ses-all/cha-ceph-libvirt.html#ceph-libvirt-cfg-vm
Libvirt docs were correct though:
https://libvirt.org/formatsecret.html#CephUsageType

Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1689168

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2021-01-08 09:18:21 +01:00

95 lines
2.1 KiB
XML

<?xml version="1.0"?>
<!-- A Relax NG schema for the libvirt secret properties XML format -->
<grammar xmlns="http://relaxng.org/ns/structure/1.0">
<start>
<ref name="secret"/>
</start>
<include href="basictypes.rng"/>
<define name="secret">
<element name="secret">
<optional>
<attribute name="ephemeral">
<ref name="virYesNo"/>
</attribute>
</optional>
<optional>
<attribute name="private">
<ref name="virYesNo"/>
</attribute>
</optional>
<interleave>
<optional>
<element name="uuid">
<ref name="UUID"/>
</element>
</optional>
<optional>
<element name="description">
<text/>
</element>
</optional>
<optional>
<element name="usage">
<choice>
<ref name="usagevolume"/>
<ref name="usageceph"/>
<ref name="usageiscsi"/>
<ref name="usagetls"/>
<ref name="usagevtpm"/>
<!-- More choices later -->
</choice>
</element>
</optional>
</interleave>
</element>
</define>
<define name="usagevolume">
<attribute name="type">
<value>volume</value>
</attribute>
<element name="volume">
<ref name="absFilePath"/>
</element>
</define>
<define name="usageceph">
<attribute name="type">
<value>ceph</value>
</attribute>
<element name="name">
<ref name="objectName"/>
</element>
</define>
<define name="usageiscsi">
<attribute name="type">
<value>iscsi</value>
</attribute>
<element name="target">
<ref name="objectName"/>
</element>
</define>
<define name="usagetls">
<attribute name="type">
<value>tls</value>
</attribute>
<element name="name">
<ref name="objectName"/>
</element>
</define>
<define name="usagevtpm">
<attribute name="type">
<value>vtpm</value>
</attribute>
<element name="name">
<ref name="objectName"/>
</element>
</define>
</grammar>