--- {% set mtu_ctlplane_list = [ctlplane_mtu] %} {% set mtu_dataplane_list = [] %} {% for network in role_networks %} {# This block resolves the minimum viable MTU for interfaces connected to #} {# the dataplane network(s), which start by "Tenant", and also bonds #} {# and bridges that carry multiple VLANs. Each VLAN may have different MTU. #} {# The bridge, bond or interface must have an MTU to allow the VLAN with the #} {# largest MTU. #} {% if network.startswith('Tenant') %} {{ mtu_dataplane_list.append(lookup('vars', networks_lower[network] ~ '_mtu')) }} {# This block resolves the minimum viable MTU for interfaces connected to #} {# the control plane network(s) (don't start by "Tenant"), and also bonds #} {# and bridges that carry multiple VLANs. Each VLAN may have different MTU. #} {# The bridge, bond or interface must have an MTU to allow the VLAN with the #} {# largest MTU. #} {% else %} {{ mtu_ctlplane_list.append(lookup('vars', networks_lower[network] ~ '_mtu')) }} {%- endfor %} {% set min_viable_mtu_ctlplane = mtu_ctlplane_list | max %} {% set min_viable_mtu_dataplane = mtu_dataplane_list | max %} network_config: - type: interface name: nic1 mtu: {{ ctlplane_mtu }} use_dhcp: false addresses: - ip_netmask: {{ ctlplane_ip }}/{{ ctlplane_subnet_cidr }} routes: {{ ctlplane_host_routes }} - type: linux_bond name: bond_api mtu: {{ min_viable_mtu_ctlplane }} use_dhcp: false bonding_options: {{ bond_interface_ovs_options }} dns_servers: {{ ctlplane_dns_nameservers }} domain: {{ dns_search_domains }} members: - type: interface name: nic2 mtu: {{ min_viable_mtu_ctlplane }} primary: true - type: interface name: nic3 mtu: {{ min_viable_mtu_ctlplane }} {% for network in role_networks if not network.startswith('Tenant') %} - type: vlan device: bond_api mtu: {{ lookup('vars', networks_lower[network] ~ '_mtu') }} vlan_id: {{ lookup('vars', networks_lower[network] ~ '_vlan_id') }} addresses: - ip_netmask: {{ lookup('vars', networks_lower[network] ~ '_ip') }}/{{ lookup('vars', networks_lower[network] ~ '_cidr') }} routes: {{ lookup('vars', networks_lower[network] ~ '_host_routes') }} {% endfor %} - type: ovs_bridge name: {{ neutron_physical_bridge_name }} dns_servers: {{ ctlplane_dns_nameservers }} members: - type: linux_bond name: bond-data mtu: {{ min_viable_mtu_dataplane }} bonding_options: {{ bond_interface_ovs_options }} members: - type: interface name: nic4 mtu: {{ min_viable_mtu_dataplane }} primary: true - type: interface name: nic5 mtu: {{ min_viable_mtu_dataplane }} {% for network in role_networks if network.startswith('Tenant') %} - type: vlan device: bond-data mtu: {{ lookup('vars', networks_lower[network] ~ '_mtu') }} vlan_id: {{ lookup('vars', networks_lower[network] ~ '_vlan_id') }} addresses: - ip_netmask: {{ lookup('vars', networks_lower[network] ~ '_ip') }}/{{ lookup('vars', networks_lower[network] ~ '_cidr') }} routes: {{ lookup('vars', networks_lower[network] ~ '_host_routes') }} {%- endfor %}