From 02708db0054bcabf4db151d4b364d70ecc44ef18 Mon Sep 17 00:00:00 2001 From: Harry Huang Date: Tue, 25 Jul 2017 17:01:04 +0800 Subject: Adapt network.yml to OpenStack Ansible JIRA:COMPASS-557 1. modify sys_intf_mappings and ip_settings in network.yml to synchronize with OSA network. networks compass build will be mgmt, external, tenant, storage. 2. modify compass_conf to support new netwok.yml 3. fix some hard coding when transfer ip parameters 4. support heterogeneous network Change-Id: Ib4a8af1f96a40e6456242e3dc2b456e0c8c17c2e Signed-off-by: Harry Huang --- .../roles/config-compute/templates/compute.j2 | 86 ++++++++++++---------- 1 file changed, 49 insertions(+), 37 deletions(-) (limited to 'deploy/adapters/ansible/roles/config-compute') diff --git a/deploy/adapters/ansible/roles/config-compute/templates/compute.j2 b/deploy/adapters/ansible/roles/config-compute/templates/compute.j2 index 66c3297b..c53708ec 100644 --- a/deploy/adapters/ansible/roles/config-compute/templates/compute.j2 +++ b/deploy/adapters/ansible/roles/config-compute/templates/compute.j2 @@ -5,21 +5,42 @@ auto lo iface lo inet loopback - # Physical interface auto eth0 iface eth0 inet manual +# external interface +{% set intf_external = sys_intf_mappings["external"]["interface"] %} +{% if sys_intf_mappings["external"]["vlan_tag"] != "None" %} +{% set intf_external = intf_external + '.' + sys_intf_mappings["external"]["vlan_tag"]|string %} +{% endif %} +auto {{ intf_external }} +iface {{ intf_external }} inet manual +{% if sys_intf_mappings["external"]["vlan_tag"] != "None" %} + vlan-raw-device {{ intf_external }} +{% endif %} -# OpenStack Networking VXLAN (tunnel/overlay) VLAN interface -auto {{sys_intf_mappings["mgmt"]["interface"]}}.{{sys_intf_mappings["mgmt"]["vlan_tag"]}} -iface {{sys_intf_mappings["mgmt"]["interface"]}}.{{sys_intf_mappings["mgmt"]["vlan_tag"]}} inet manual - vlan-raw-device {{sys_intf_mappings["mgmt"]["interface"]}} +# tenant interface +{% set intf_tenant = sys_intf_mappings["tenant"]["interface"] %} +{% if sys_intf_mappings["tenant"]["interface"] != "None" %} +{% set intf_tenant = intf_tenant + '.' + sys_intf_mappings["tenant"]["vlan_tag"]|string %} +{% endif %} +auto {{ intf_tenant }} +iface {{ intf_tenant }} inet manual +{% if sys_intf_mappings["tenant"]["interface"] != "None" %} + vlan-raw-device {{ intf_tenant }} +{% endif %} -# Storage network VLAN interface (optional) -auto {{sys_intf_mappings["storage"]["interface"]}}.{{sys_intf_mappings["storage"]["vlan_tag"]}} -iface {{sys_intf_mappings["storage"]["interface"]}}.{{sys_intf_mappings["storage"]["vlan_tag"]}} inet manual - vlan-raw-device {{sys_intf_mappings["storage"]["interface"]}} +# storage interface +{% set intf_storage = sys_intf_mappings["storage"]["interface"] %} +{% if sys_intf_mappings["storage"]["interface"] != "None" %} +{% set intf_storage = intf_storage + '.' + sys_intf_mappings["storage"]["vlan_tag"]|string %} +{% endif %} +auto {{ intf_storage }} +iface {{ intf_storage }} inet manual +{% if sys_intf_mappings["storage"]["interface"] != "None" %} + vlan-raw-device {{ intf_storage }} +{% endif %} # Container/Host management bridge auto br-mgmt @@ -28,29 +49,19 @@ iface br-mgmt inet static bridge_waitport 0 bridge_fd 0 bridge_ports eth0 - address {{host_info[inventory_hostname].MGMT_IP}} + address {{ ip_settings[inventory_hostname]["mgmt"]["ip"] }} netmask 255.255.255.0 -# compute1 VXLAN (tunnel/overlay) bridge config -auto br-vxlan -iface br-vxlan inet static - bridge_stp off - bridge_waitport 0 - bridge_fd 0 - bridge_ports {{sys_intf_mappings["mgmt"]["interface"]}}.{{sys_intf_mappings["mgmt"]["vlan_tag"]}} - address {{host_info[inventory_hostname].VXLAN_IP}} - netmask 255.255.252.0 - # OpenStack Networking VLAN bridge -auto br-vlan -iface br-vlan inet static +auto br-external +iface br-external inet static bridge_stp off bridge_waitport 0 bridge_fd 0 - bridge_ports {{ network_cfg["provider_net_mappings"][0]["interface"] }} - address {{ip_settings[inventory_hostname]["br-prv"]["ip"]}} + bridge_ports {{ intf_external }} + address {{ ip_settings[inventory_hostname]["external"]["ip"] }} netmask 255.255.255.0 - gateway {{ip_settings[inventory_hostname]["br-prv"]["gw"]}} + gateway {{ ip_settings[inventory_hostname]["external"]["gw"] }} offload-sg off # Create veth pair, don't bomb if already exists pre-up ip link add br-vlan-veth type veth peer name eth12 || true @@ -61,21 +72,22 @@ iface br-vlan inet static post-down ip link del br-vlan-veth || true bridge_ports br-vlan-veth -# Add an additional address to br-vlan -iface br-vlan inet static - # Flat network default gateway - # -- This needs to exist somewhere for network reachability - # -- from the router namespace for floating IP paths. - # -- Putting this here is primarily for tempest to work. - address {{host_info[inventory_hostname].VLAN_IP_SECOND}} - netmask 255.255.252.0 +# VXLAN (tunnel/overlay) bridge config +auto br-tenant +iface br-tenant inet static + bridge_stp off + bridge_waitport 0 + bridge_fd 0 + bridge_ports {{ intf_tenant }} + address {{ ip_settings[inventory_hostname]["tenant"]["ip"] }} + netmask 255.255.255.0 -# compute storage bridge +# storage bridge auto br-storage iface br-storage inet static bridge_stp off bridge_waitport 0 bridge_fd 0 - bridge_ports {{sys_intf_mappings["storage"]["interface"]}}.{{sys_intf_mappings["storage"]["vlan_tag"]}} - address {{ip_settings[inventory_hostname]["storage"]["ip"]}} - netmask 255.255.252.0 + bridge_ports {{ intf_storage }} + address {{ ip_settings[inventory_hostname]["storage"]["ip"] }} + netmask 255.255.255.0 -- cgit 1.2.3-korg