mcp-*-noha/openstack/compute.yml
mcp-common-noha/infra/init.yml
mcp-common-noha/init_options.yml
+mcp-*-noha/openstack/gateway.yml
##############################################################################
{#- NOTE: br-{mgmt,ctl} are cross-referenced, careful when changing names #}
{%- import 'net_map.j2' as nm with context %}
+{%- import 'net_macros.j2' as ma with context %}
+{#- Filter-out NIC duplicates by constructing a dict (used NICs only) #}
+{%- set nics = { nm.cmp001.nic_mgmt: True, nm.cmp001.nic_private: True } %}
+{%- set vlan_private_start = (nm.vlan_private | string).rsplit('-')[0] %}
+{%- set vlans = { nm.vlan_mgmt: nm.cmp001.nic_mgmt, vlan_private_start: nm.cmp001.nic_private } %}
---
parameters:
_param:
{%- else %}
~cinder_lvm_devices: ['/dev/sda1']
{%- endif %}
- primary_interface: {{ nm.cmp001.nic_mgmt }}
- tenant_interface: {{ nm.cmp001.nic_private }}
- external_interface: {{ nm.cmp001.nic_public }}
linux:
network:
bridge: openvswitch
netmask: ${_param:opnfv_net_admin_mask}
mtu: ${_param:interface_mtu}
noifupdown: true
- primary_interface:
- enabled: true
- name: ${_param:primary_interface}
- proto: manual
- type: eth
- tenant_interface:
- enabled: true
- name: ${_param:tenant_interface}
- mtu: ${_param:interface_mtu}
- proto: manual
- type: eth
+
+{#- prevent duplicates for tagged mgmt on the same physical interface as PXE/admin #}
+{%- if nm.cmp001.nic_admin in nics %}
+ {%- do nics.pop(nm.cmp001.nic_admin) %}
+{%- endif %}
+
+{{ ma.linux_network_interfaces_nic(nics) }}
+
+{{ ma.linux_network_interfaces_vlan(vlans) }}
+
br-mgmt:
enabled: true
type: bridge
address: ${_param:single_address}
netmask: ${_param:opnfv_net_mgmt_mask}
use_interfaces:
- - ${_param:primary_interface}
+ - {{ ma.interface_str(nm.cmp001.nic_mgmt, nm.vlan_mgmt) }}
- cluster.mcp-common-noha.openstack_control_pdf
parameters:
_param:
+ interface_mtu: 1500
linux_system_codename: xenial
ceilometer_create_gnocchi_resources: 'True'
linux:
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################
{%- import 'net_map.j2' as nm with context %}
+{%- import 'net_macros.j2' as ma with context %}
+{#- Filter-out NIC duplicates by constructing a dict (used NICs only) #}
+{%- set nics = { nm.ctl01.nic_mgmt: True, nm.ctl01.nic_public: True } %}
+{%- set vlans = { nm.vlan_mgmt: nm.ctl01.nic_mgmt, nm.vlan_public: nm.ctl01.nic_public } %}
---
parameters:
linux:
address: ${_param:pxe_admin_address}
netmask: ${_param:opnfv_net_admin_mask}
noifupdown: true
- single_int:
+
+{#- prevent duplicates for tagged mgmt on the same physical interface as PXE/admin #}
+{%- if nm.ctl01.nic_admin in nics %}
+ {%- do nics.pop(nm.ctl01.nic_admin) %}
+{%- endif %}
+
+{{ ma.linux_network_interfaces_nic(nics) }}
+
+{{ ma.linux_network_interfaces_vlan(vlans) }}
+
+ br-ctl:
enabled: true
- name: {{ nm.ctl01.nic_mgmt }}
- type: eth
+ type: bridge
proto: static
address: ${_param:single_address}
netmask: ${_param:opnfv_net_mgmt_mask}
- public_int:
+ noifupdown: true
+ use_interfaces:
+ - {{ ma.interface_str(nm.ctl01.nic_mgmt, nm.vlan_mgmt) }}
+ br-ext:
enabled: true
- name: {{ nm.ctl01.nic_public }}
- type: eth
+ type: bridge
proto: static
address: ${_param:cluster_public_host}
netmask: ${_param:opnfv_net_public_mask}
gateway: ${_param:opnfv_net_public_gw}
name_servers: {{ nm.dns_public }}
+ use_interfaces:
+ - {{ ma.interface_str(nm.ctl01.nic_public, nm.vlan_public) }}
+ noifupdown: true
##############################################################################
---
{%- import 'net_map.j2' as nm with context %}
+{%- import 'net_macros.j2' as ma with context %}
+{#- Filter-out NIC duplicates by constructing a dict (used NICs only) #}
+{%- set nics = { nm.ctl01.nic_mgmt: True, nm.ctl01.nic_private: True } %}
+{%- set vlan_private_start = (nm.vlan_private | string).rsplit('-')[0] %}
+{%- set vlans = { nm.vlan_mgmt: nm.ctl01.nic_mgmt, vlan_private_start: nm.ctl01.nic_private } %}
parameters:
- _param:
- primary_interface: {{ nm.ctl01.nic_mgmt }}
- tenant_interface: {{ nm.ctl01.nic_private }}
- external_interface: {{ nm.ctl01.nic_public }}
linux:
network:
bridge: openvswitch
netmask: ${_param:opnfv_net_admin_mask}
mtu: ${_param:interface_mtu}
noifupdown: true
- primary_interface:
+
+{#- prevent duplicates for tagged mgmt on the same physical interface as PXE/admin #}
+{%- if nm.ctl01.nic_admin in nics %}
+ {%- do nics.pop(nm.ctl01.nic_admin) %}
+{%- endif %}
+
+{{ ma.linux_network_interfaces_nic(nics) }}
+
+{{ ma.linux_network_interfaces_vlan(vlans) }}
+
+ ovs_port_{{ nm.ctl01.nic_public }}:
enabled: true
- name: ${_param:primary_interface}
- mtu: ${_param:interface_mtu}
- proto: manual
- type: eth
- tenant_interface:
- enabled: true
- name: ${_param:tenant_interface}
- mtu: ${_param:interface_mtu}
- proto: manual
- type: eth
- external_interface:
- enabled: true
- name: ${_param:external_interface}
+ name: {{ ma.interface_str(nm.ctl01.nic_public, nm.vlan_public) }}
proto: manual
ovs_port_type: OVSPort
type: ovs_port
address: ${_param:external_address}
netmask: ${_param:opnfv_net_public_mask}
use_interfaces:
- - ${_param:external_interface}
+ - {{ ma.interface_str(nm.ctl01.nic_public, nm.vlan_public) }}
gateway: ${_param:opnfv_net_public_gw}
name_servers: {{ nm.dns_public }}
br-mgmt:
netmask: ${_param:opnfv_net_mgmt_mask}
mtu: ${_param:interface_mtu}
use_interfaces:
- - ${_param:primary_interface}
+ - {{ ma.interface_str(nm.ctl01.nic_mgmt, nm.vlan_mgmt) }}
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################
{%- import 'net_map.j2' as nm with context %}
+{%- import 'net_macros.j2' as ma with context %}
+{#- Filter-out NIC duplicates by constructing a dict (used NICs only) #}
+{%- set nics = { nm.ctl01.nic_mgmt: True } %}
+{%- set vlans = { nm.vlan_mgmt: nm.ctl01.nic_mgmt } %}
---
parameters:
linux:
type: eth
address: ${_param:pxe_admin_address}
netmask: ${_param:opnfv_net_admin_mask}
+ mtu: ${_param:interface_mtu}
+ noifupdown: true
gateway: {{ nm.net_admin_gw }}
name_servers:
- {{ nm.net_admin_gw }}
- noifupdown: true
- single_int:
+
+{#- prevent duplicates for tagged mgmt on the same physical interface as PXE/admin #}
+{%- if nm.ctl01.nic_admin in nics %}
+ {%- do nics.pop(nm.ctl01.nic_admin) %}
+{%- endif %}
+
+{{ ma.linux_network_interfaces_nic(nics) }}
+
+{{ ma.linux_network_interfaces_vlan(vlans) }}
+
+ br-ctl:
enabled: true
- name: {{ nm.ctl01.nic_mgmt }}
- type: eth
+ type: bridge
proto: static
address: ${_param:single_address}
netmask: ${_param:opnfv_net_mgmt_mask}
+ use_interfaces:
+ - {{ ma.interface_str(nm.ctl01.nic_mgmt, nm.vlan_mgmt) }}
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################
{%- import 'net_map.j2' as nm with context %}
+{%- import 'net_macros.j2' as ma with context %}
+{%- set vlan_private_start = (nm.vlan_private | string).rsplit('-')[0] %}
---
classes:
- service.neutron.compute.single
proto: static
address: ${_param:tenant_address}
netmask: ${_param:opnfv_net_private_mask}
- tenant_interface:
+ {{ nm.cmp001.nic_private }}:
type: dpdk # Not a meaningful type, just match 'dpdk' for filtering
{%- else %}
br-mesh:
address: ${_param:tenant_address}
netmask: ${_param:opnfv_net_private_mask}
use_interfaces:
- - ${_param:tenant_interface}
+ - {{ ma.interface_str(nm.cmp001.nic_private, vlan_private_start) }}
{%- endif %}
- external_interface:
+ ovs_port_{{ nm.cmp001.nic_public }}:
enabled: true
- name: ${_param:external_interface}
+ name: {{ ma.interface_str(nm.cmp001.nic_public, nm.vlan_public) }}
proto: manual
ovs_port_type: OVSPort
type: ovs_port
address: ${_param:external_address}
netmask: ${_param:opnfv_net_public_mask}
use_interfaces:
- - ${_param:external_interface}
+ - {{ ma.interface_str(nm.cmp001.nic_public, nm.vlan_public) }}
gateway: ${_param:opnfv_net_public_gw}
name_servers: {{ nm.dns_public }}
# which accompanies this distribution, and is available at
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################
+{%- import 'net_map.j2' as nm with context %}
+{%- import 'net_macros.j2' as ma with context %}
+{%- set vlan_private_start = (nm.vlan_private | string).rsplit('-')[0] %}
---
classes:
- cluster.mcp-common-noha.openstack_gateway
address: ${_param:tenant_address}
netmask: ${_param:opnfv_net_private_mask}
use_interfaces:
- - ${_param:tenant_interface}
+ - {{ ma.interface_str(nm.cmp001.nic_private, vlan_private_start) }}
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################
{%- import 'net_map.j2' as nm with context %}
+{%- import 'net_macros.j2' as ma with context %}
+{%- set vlan_private_start = (nm.vlan_private | string).rsplit('-')[0] %}
---
classes:
- service.neutron.compute.ovn.single
linux:
network:
interface:
- external_interface:
+ ovs_port_{{ nm.cmp001.nic_public }}:
enabled: true
- name: ${_param:external_interface}
+ name: {{ ma.interface_str(nm.cmp001.nic_public, nm.vlan_public) }}
proto: manual
ovs_port_type: OVSPort
type: ovs_port
address: ${_param:tenant_address}
netmask: ${_param:opnfv_net_private_mask}
use_interfaces:
- - ${_param:tenant_interface}
+ - {{ ma.interface_str(nm.cmp001.nic_private, vlan_private_start) }}
br-floating:
enabled: true
type: ovs_bridge
address: ${_param:external_address}
netmask: ${_param:opnfv_net_public_mask}
use_interfaces:
- - ${_param:external_interface}
+ - {{ ma.interface_str(nm.cmp001.nic_public, nm.vlan_public) }}
gateway: ${_param:opnfv_net_public_gw}
name_servers: {{ nm.dns_public }}
br-prv:
enabled: true
type: dpdk_ovs_bridge
- tenant_interface:
+ {{ nm.cmp001.nic_private }}:
type: dpdk # Not a meaningful type, just match 'dpdk' for filtering
# which accompanies this distribution, and is available at
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################
+{%- import 'net_map.j2' as nm with context %}
---
classes:
- cluster.mcp-common-noha.openstack_gateway
linux:
network:
interface:
- tenant_interface:
+ {{ nm.cmp001.nic_private }}:
ovs_bridge: br-prv
br-prv:
enabled: true
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################
{%- import 'net_map.j2' as nm with context %}
+{%- import 'net_macros.j2' as ma with context %}
+{%- set vlan_private_start = (nm.vlan_private | string).rsplit('-')[0] %}
---
classes:
- service.neutron.compute.single
address: ${_param:tenant_address}
netmask: ${_param:opnfv_net_private_mask}
use_interfaces:
- - ${_param:tenant_interface}
+ - {{ ma.interface_str(nm.cmp001.nic_private, vlan_private_start) }}
# which accompanies this distribution, and is available at
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################
+{%- import 'net_map.j2' as nm with context %}
+{%- import 'net_macros.j2' as ma with context %}
+{%- set vlan_private_start = (nm.vlan_private | string).rsplit('-')[0] %}
---
classes:
- cluster.mcp-common-noha.openstack_gateway
address: ${_param:tenant_address}
netmask: ${_param:opnfv_net_private_mask}
use_interfaces:
- - ${_param:tenant_interface}
+ - {{ ma.interface_str(nm.ctl01.nic_private, vlan_private_start) }}