124c8362a4
Change-Id: I4217b61125d6984d76b68b13d7e2600c8aa33c9f
230 lines
8.0 KiB
YAML
230 lines
8.0 KiB
YAML
flavorTemplates:
|
|
master:
|
|
domainTemplate: |
|
|
{% if domain is defined %}
|
|
<domain type="kvm">
|
|
<name>{{ domain.name }}</name>
|
|
<uuid>{{ domain.name | hash('md5') }}</uuid>
|
|
<metadata>
|
|
<vino:flavor>master</vino:flavor>
|
|
<vino:creationTime>{{ ansible_date_time.date }}</vino:creationTime>
|
|
</metadata>
|
|
<memory unit="GiB">{{ flavors.master.memory }}</memory>
|
|
{% if flavors.master.hugepages is defined and flavors.master.hugepages == true %}
|
|
<memoryBacking>
|
|
<hugepages>
|
|
<page size='1' unit='GiB' />
|
|
</hugepages>
|
|
</memoryBacking>
|
|
{% endif %}
|
|
<vcpu placement="static">{{ flavors.master.vcpus }}</vcpu>
|
|
{% if domain.name in node_core_map %}
|
|
# function to produce list of cpus, in same numa (controled by bool), state will need to be tracked via file on hypervisor host. gotpl psudo:
|
|
<cputune>
|
|
<shares>8192</shares>
|
|
{% for core in node_core_map[domain.name] %}
|
|
<vcpupin vcpu="{{ loop.index0 }}" cpuset="{{ core }}"/>
|
|
{% endfor %}
|
|
<emulatorpin cpuset="{{ node_core_map[domain.name]|join(',') }}"/>
|
|
</cputune>
|
|
{% endif %}
|
|
<resource>
|
|
<partition>/machine</partition>
|
|
</resource>
|
|
<os>
|
|
<type arch="x86_64" machine="pc">hvm</type>
|
|
<boot dev="hd"/>
|
|
</os>
|
|
<features>
|
|
<acpi/>
|
|
<apic/>
|
|
</features>
|
|
<cpu mode="host-passthrough" />
|
|
<clock offset="utc">
|
|
<timer name="pit" tickpolicy="delay"/>
|
|
<timer name="rtc" tickpolicy="catchup"/>
|
|
<timer name="hpet" present="no"/>
|
|
</clock>
|
|
<on_poweroff>destroy</on_poweroff>
|
|
<on_reboot>restart</on_reboot>
|
|
<on_crash>destroy</on_crash>
|
|
<devices>
|
|
<emulator>/usr/bin/qemu-system-x86_64</emulator>
|
|
|
|
# for each disk requested
|
|
<disk type='volume' device='disk'>
|
|
<driver name="qemu" type="qcow2" cache="none" discard="unmap"/>
|
|
<source pool='vino-default' volume='{{ domain.name }}'/>
|
|
<target dev='vde' bus='virtio'/>
|
|
</disk>
|
|
|
|
<controller type="usb" index="0" model="piix3-uhci">
|
|
<alias name="usb"/>
|
|
</controller>
|
|
<controller type="pci" index="0" model="pci-root">
|
|
<alias name="pci.0"/>
|
|
</controller>
|
|
<controller type="ide" index="0">
|
|
<alias name="ide"/>
|
|
</controller>
|
|
|
|
# for each interface defined in vino, e.g.
|
|
{% for interface in domain.interfaces %}
|
|
<interface type='{{ interface.type }}'>
|
|
<mac address='{{ interface.macAddress }}'/>
|
|
<source {{ interface.type }}='{{ interface.network }}'/>
|
|
<model type='virtio'/>
|
|
</interface>
|
|
{% endfor %}
|
|
|
|
<serial type='file'>
|
|
<source path='/var/lib/libvirt/{{ domain.name }}-console.log'/>
|
|
</serial>
|
|
<serial type='pty'/>
|
|
|
|
<console type='file'>
|
|
<source path='/var/lib/libvirt/{{ domain.name }}-console.log'/>
|
|
<target type='serial'/>
|
|
</console>
|
|
|
|
{% if domain.enableVNC | default(false) %}
|
|
<graphics type='vnc' autoport='yes' passwd='{{ domain.vncPassword }}' listen='0.0.0.0'>
|
|
<listen type='address' address='0.0.0.0'/>
|
|
</graphics>
|
|
{% endif %}
|
|
|
|
<memballoon model="virtio">
|
|
<stats period="10"/>
|
|
<alias name="balloon0"/>
|
|
</memballoon>
|
|
</devices>
|
|
<seclabel type="dynamic" model="dac" relabel="yes">
|
|
<label>+42424:+104</label>
|
|
<imagelabel>+42424:+104</imagelabel>
|
|
</seclabel>
|
|
</domain>
|
|
{% endif %}
|
|
volumeTemplate: |
|
|
<volume>
|
|
<name>{{ domain.name }}</name>
|
|
<allocation>0</allocation>
|
|
<capacity unit='G'>{{ flavors.master.rootSize }}</capacity>
|
|
<target>
|
|
<format type='qcow2'/>
|
|
</target>
|
|
</volume>
|
|
worker:
|
|
domainTemplate: |
|
|
{% if domain is defined %}
|
|
<domain type="kvm">
|
|
<name>{{ domain.name }}</name>
|
|
<uuid>{{ domain.name | hash('md5') }}</uuid>
|
|
<metadata>
|
|
<vino:flavor>worker</vino:flavor>
|
|
<vino:creationTime>{{ ansible_date_time.date }}</vino:creationTime>
|
|
</metadata>
|
|
<memory unit="GiB">{{ flavors.worker.memory }}</memory>
|
|
{% if flavors.worker.hugepages is defined and flavors.worker.hugepages == true %}
|
|
<memoryBacking>
|
|
<hugepages>
|
|
<page size='1' unit='GiB' />
|
|
</hugepages>
|
|
</memoryBacking>
|
|
{% endif %}
|
|
<vcpu placement="static">{{ flavors.worker.vcpus }}</vcpu>
|
|
{% if domain.name in node_core_map %}
|
|
# function to produce list of cpus, in same numa (controled by bool), state will need to be tracked via file on hypervisor host. gotpl psudo:
|
|
<cputune>
|
|
<shares>8192</shares>
|
|
{% for core in node_core_map[domain.name] %}
|
|
<vcpupin vcpu="{{ loop.index0 }}" cpuset="{{ core }}"/>
|
|
{% endfor %}
|
|
<emulatorpin cpuset="{{ node_core_map[domain.name]|join(',') }}"/>
|
|
</cputune>
|
|
{% endif %}
|
|
<resource>
|
|
<partition>/machine</partition>
|
|
</resource>
|
|
<os>
|
|
<type arch="x86_64" machine="pc-i440fx-xenial">hvm</type>
|
|
<boot dev="hd"/>
|
|
</os>
|
|
<features>
|
|
<acpi/>
|
|
<apic/>
|
|
</features>
|
|
<cpu mode="host-passthrough" />
|
|
<clock offset="utc">
|
|
<timer name="pit" tickpolicy="delay"/>
|
|
<timer name="rtc" tickpolicy="catchup"/>
|
|
<timer name="hpet" present="no"/>
|
|
</clock>
|
|
<on_poweroff>destroy</on_poweroff>
|
|
<on_reboot>restart</on_reboot>
|
|
<on_crash>destroy</on_crash>
|
|
<devices>
|
|
<emulator>/usr/bin/qemu-system-x86_64</emulator>
|
|
|
|
# for each disk requested
|
|
<disk type='volume' device='disk'>
|
|
<driver name="qemu" type="qcow2" cache="none" discard="unmap"/>
|
|
<source pool='vino-default' volume='{{ domain.name }}'/>
|
|
<target dev='vde' bus='virtio'/>
|
|
</disk>
|
|
|
|
<controller type="usb" index="0" model="piix3-uhci">
|
|
<alias name="usb"/>
|
|
</controller>
|
|
<controller type="pci" index="0" model="pci-root">
|
|
<alias name="pci.0"/>
|
|
</controller>
|
|
<controller type="ide" index="0">
|
|
<alias name="ide"/>
|
|
</controller>
|
|
|
|
# for each interface defined in vino, e.g.
|
|
{% for interface in domain.interfaces %}
|
|
<interface type='{{ interface.type }}'>
|
|
<mac address='{{ interface.macAddress }}'/>
|
|
<source {{ interface.type }}='{{ interface.network }}'/>
|
|
<model type='virtio'/>
|
|
</interface>
|
|
{% endfor %}
|
|
|
|
<serial type='file'>
|
|
<source path='/var/lib/libvirt/{{ domain.name }}-console.log'/>
|
|
</serial>
|
|
<serial type='pty'/>
|
|
|
|
<console type='file'>
|
|
<source path='/var/lib/libvirt/{{ domain.name }}-console.log'/>
|
|
<target type='serial'/>
|
|
</console>
|
|
|
|
{% if domain.enableVNC | default(false) %}
|
|
<graphics type='vnc' autoport='yes' listen='0.0.0.0'>
|
|
<listen type='address' address='0.0.0.0'/>
|
|
</graphics>
|
|
{% endif %}
|
|
|
|
<memballoon model="virtio">
|
|
<stats period="10"/>
|
|
<alias name="balloon0"/>
|
|
</memballoon>
|
|
</devices>
|
|
<seclabel type="dynamic" model="dac" relabel="yes">
|
|
<label>+42424:+104</label>
|
|
<imagelabel>+42424:+104</imagelabel>
|
|
</seclabel>
|
|
</domain>
|
|
{% endif %}
|
|
volumeTemplate: |
|
|
<volume>
|
|
<name>{{ domain.name }}</name>
|
|
<allocation>0</allocation>
|
|
<capacity unit='G'>{{ flavors.worker.rootSize }}</capacity>
|
|
<target>
|
|
<format type='qcow2'/>
|
|
</target>
|
|
</volume>
|