
This patchset moves the vino-builder image build from the images repo into the vino repo. [0] removes it from the images repo. [0] https://review.opendev.org/c/airship/images/+/786714 Change-Id: I8299045cdfaaf285e0f088b330a84e00fcb8307c
198 lines
6.2 KiB
YAML
198 lines
6.2 KiB
YAML
configuration:
|
|
cpuExclude: 0-1,54-60
|
|
redfishCredentialSecret:
|
|
name: redfishSecret
|
|
namespace: airship-system
|
|
networks:
|
|
- name: management
|
|
subnet: 192.168.2.0/20
|
|
allocationStart: 192.168.2.10
|
|
allocationStop: 192.168.2.14 # docs should specify that the range should = number of vms (to permit future expansion over multiple vino crs etc)
|
|
routes:
|
|
- to: 10.0.0.0/24
|
|
via: "{{ ipam.bridge_ip | default(omit) }}" # vino will need to populate this from the nodelabel value `airshipit.org/vino.nodebridgegw`
|
|
dns_servers: ["135.188.34.124"]
|
|
- name: mobility-gn
|
|
subnet: 169.0.0.0/24
|
|
routes:
|
|
- to: 0.0.0.0/0
|
|
via: 169.0.0.1
|
|
allocationStart: 169.0.0.10
|
|
allocationStop: 169.0.0.254
|
|
libvirtNetworks:
|
|
- name: management
|
|
libvirtTemplate: |
|
|
<network>
|
|
<name>management</name>
|
|
<forward mode='route'/>
|
|
<bridge name='management' stp='off' delay='0'/>
|
|
<ip address='{{ ipam.bridge_ip | default(omit) }}' netmask='255.255.240.0'>
|
|
<tftp root='/srv/tftp'/>
|
|
<dhcp>
|
|
<range start='192.168.1.1' end='192.168.1.254'/>
|
|
<bootp file=''/>
|
|
</dhcp>
|
|
</ip>
|
|
</network>
|
|
# - name: mobility-gn
|
|
# libvirtTemplate:
|
|
libvirtStorage:
|
|
- name: vino-default
|
|
libvirtTemplate: |
|
|
<pool type='dir'>
|
|
<name>vino-default</name>
|
|
<target>
|
|
<path>/var/lib/libvirt/vino</path>
|
|
<permissions>
|
|
<mode>0711</mode>
|
|
<owner>0</owner>
|
|
<group>0</group>
|
|
</permissions>
|
|
</target>
|
|
</pool>
|
|
libvirtDomains:
|
|
master:
|
|
volumeTemplate: |
|
|
{% set nodename = node.name + '-' + item|string %}
|
|
<volume>
|
|
<name>{{ nodename }}</name>
|
|
<allocation>0</allocation>
|
|
<capacity unit='G'>{{ node.instance.rootSize }}</capacity>
|
|
</volume>
|
|
domainTemplate: |
|
|
{% set nodename = node.name + '-' + item|string %}
|
|
<domain type="kvm">
|
|
<name>{{ nodename }}</name>
|
|
<uuid>{{ nodename | hash('md5') }}</uuid>
|
|
<metadata>
|
|
{% for flavor in node.labels %}
|
|
{% for key in flavor.keys() %}
|
|
{% if key == 'vm-flavor' %}
|
|
<vino:flavor>{{ flavor[key] }}</vino:flavor>
|
|
{% endif %}
|
|
{% endfor %}
|
|
{% endfor %}
|
|
<vino:creationTime>{{ ansible_date_time.date }}</vino:creationTime>
|
|
</metadata>
|
|
<memory unit="KiB">{{ node.instance.memory }}</memory>
|
|
{% if node.instance.hugepages %}
|
|
<memoryBacking>
|
|
<hugepages>
|
|
</hugepages>
|
|
</memoryBacking>
|
|
{% endif %}
|
|
<vcpu placement="static">{{ node.instance.vcpu }}</vcpu>
|
|
# 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[nodename] %}
|
|
<vcpupin vcpu="{{ core }}" cpuset="{{ core }}"/>
|
|
{% endfor %}
|
|
<emulatorpin cpuset="{{ node_core_map[nodename]|join(',') }}"/>
|
|
</cputune>
|
|
<resource>
|
|
<partition>/machine</partition>
|
|
</resource>
|
|
<os>
|
|
<type arch="x86_64" machine="pc-i440fx-bionic">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='{{ nodename }}'/>
|
|
<target dev='vde' bus='virtio'/>
|
|
</disk>
|
|
|
|
<controller type="usb" index="0" model="piix3-uhci">
|
|
<alias name="usb"/>
|
|
<address type="pci" domain="0x0000" bus="0x00" slot="0x01" function="0x2"/>
|
|
</controller>
|
|
<controller type="pci" index="0" model="pci-root">
|
|
<alias name="pci.0"/>
|
|
</controller>
|
|
<controller type="ide" index="0">
|
|
<alias name="ide"/>
|
|
<address type="pci" domain="0x0000" bus="0x00" slot="0x01" function="0x1"/>
|
|
</controller>
|
|
|
|
# for each interface defined in vino, e.g.
|
|
<interface type='bridge'>
|
|
<mac address='52:54:00:83:e9:f9'/>
|
|
<source bridge='management'/>
|
|
<model type='virtio'/>
|
|
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
|
|
</interface>
|
|
|
|
<serial type="pty">
|
|
<source path="/dev/pts/3"/>
|
|
<log file="/var/lib/vino/instances/{{ nodename }}.console.log" append="off"/>
|
|
<target type="isa-serial" port="0">
|
|
<model name="isa-serial"/>
|
|
</target>
|
|
<alias name="serial0"/>
|
|
</serial>
|
|
<console type="pty" tty="/dev/pts/3">
|
|
<source path="/dev/pts/3"/>
|
|
<log file="/var/lib/vino/instances/{{ nodename }}.console.log" append="off"/>
|
|
<target type="serial" port="0"/>
|
|
<alias name="serial0"/>
|
|
</console>
|
|
<memballoon model="virtio">
|
|
<stats period="10"/>
|
|
<alias name="balloon0"/>
|
|
<address type="pci" domain="0x0000" bus="0x00" slot="0x06" function="0x0"/>
|
|
</memballoon>
|
|
</devices>
|
|
<seclabel type="dynamic" model="dac" relabel="yes">
|
|
<label>+42424:+104</label>
|
|
<imagelabel>+42424:+104</imagelabel>
|
|
</seclabel>
|
|
</domain>
|
|
worker-standard:
|
|
libvirtTemplate: ...
|
|
nodes:
|
|
- name: master
|
|
labels:
|
|
- vm-flavor: master
|
|
instance:
|
|
memory: 8
|
|
vcpu: 2
|
|
hugepages: true
|
|
rootSize: 30
|
|
count: 2
|
|
BMHNetworkTemplate:
|
|
name: configMapFooThatsGoTplForNetwork
|
|
namespace: foo
|
|
field: bmhnetwork
|
|
- name: worker-standard
|
|
labels:
|
|
- vm-flavor: worker-standard
|
|
instance:
|
|
memory: 8
|
|
vcpu: 2
|
|
hugepages: true
|
|
rootSize: 30
|
|
count: 0
|
|
libvirtTemplate: |
|
|
foobar
|
|
BMHNetworkTemplate:
|
|
name: configMapFooThatsGoTplForNetwork
|
|
namespace: foo
|
|
field: bmhnetwork |