7ec1dc40a83c656f8135de394255d30233409783
[icn.git] / deploy / metal3-vm / vm-setup / roles / libvirt / templates / network.xml.j2
1 {% set nat_port_range = item.nat_port_range|default([1024, 65535]) %}
2 {% set netmask = item.netmask|default('255.255.255.0') %}
3 {% if item.dhcp_hosts is defined %}
4 {% set dhcp_hosts_names = item.dhcp_hosts | map(attribute='name') | map('replace', '-', '_') | list %}
5 {% endif %}
6 <network>
7   <name>{{ item.name }}</name>
8   <bridge name='{{ item.bridge }}'/>
9 {% if item.forward_mode is defined %}
10   <forward mode='{{ item.forward_mode }}'>
11 {% if item.forward_mode == 'nat' %}
12     <nat>
13       <port start='{{ nat_port_range[0] }}' end='{{ nat_port_range[1] }}' />
14     </nat>
15 {% endif %}
16   </forward>
17 {% endif %}
18 {% if item.virtualport_type is defined %}
19       <virtualport type='{{ item.virtualport_type }}'/>
20 {% endif %}
21 {% if item.address is defined  and item.forward_mode != 'bridge' %}
22   <ip address='{{ item.address }}' netmask='{{ netmask }}'>
23 {% if item.dhcp_range is defined %}
24     <dhcp>
25       <range start='{{ item.dhcp_range[0] }}' end='{{ item.dhcp_range[1] }}'/>
26   {% if item.dhcp_hosts is defined %}
27     {% for host in item.dhcp_hosts %}
28       <host mac='{{ node_mac_map.get(ironic_prefix + dhcp_hosts_names[loop.index0]).get(item.name) }}' name='{{ host.name }}' ip='{{ host.ip }}'/>
29     {% endfor %}
30   {% endif %}
31     </dhcp>
32 {% endif %}
33   </ip>
34 {% if item.domain is defined %}
35   <domain name='{{ item.domain }}' localOnly='yes'/>
36 {% endif %}
37 {% if item.dns is defined %}
38   <dns>
39   {% for host in item.dns.hosts %}
40     <host ip='{{ host.ip }}'>
41     {% for name in host.hostnames %}
42       <hostname>{{ name }}</hostname>
43     {% endfor %}
44     </host>
45   {% endfor %}
46   {% if item.dns.srvs is defined %}
47     {% for srv in item.dns.srvs %}
48     <srv service='{{ srv.name }}' protocol='{{ srv.protocol }}' domain='{{ srv.domain }}' port='{{ srv.port }}' target='{{ srv.target }}' />
49     {% endfor %}
50   {% endif %}
51   {% if item.dns.forwarders is defined %}
52     {% for forwarder in item.dns.forwarders %}
53     <forwarder domain='{{ forwarder.domain }}' addr='{{ forwarder.addr }}' />
54     {% endfor %}
55   {% endif %}
56   </dns>
57 {% endif %}
58 {% endif %}
59 </network>