From 6c2e68a545d5f2bc52e45352d2e96889fafdae04 Mon Sep 17 00:00:00 2001 From: Doug Szumski Date: Fri, 20 Jul 2018 11:45:40 +0100 Subject: [PATCH] Support configuring tunnel network Support configuring a separate tunnel network for tenant overlay network traffic. Change-Id: I74274823d6fe3a42aabcca00c8cd20e1abb3d219 Story: 2003054 Task: 23091 --- ansible/group_vars/all/compute | 3 ++- ansible/group_vars/all/controllers | 3 ++- ansible/group_vars/all/network | 3 +++ ansible/kolla-ansible.yml | 1 + ansible/roles/kolla-ansible/defaults/main.yml | 1 + ansible/roles/kolla-ansible/templates/globals.yml.j2 | 2 +- ansible/roles/kolla-ansible/tests/test-defaults.yml | 2 ++ ansible/roles/kolla-ansible/tests/test-extras.yml | 2 ++ dev/dev-vagrant.yml | 1 + doc/source/configuration/network.rst | 6 ++++++ etc/kayobe/networks.yml | 3 +++ ...support_configuring_tunnel_network-1646eef887d72abf.yaml | 4 ++++ 12 files changed, 28 insertions(+), 3 deletions(-) create mode 100644 releasenotes/notes/support_configuring_tunnel_network-1646eef887d72abf.yaml diff --git a/ansible/group_vars/all/compute b/ansible/group_vars/all/compute index 6e186963c..3d780bb78 100644 --- a/ansible/group_vars/all/compute +++ b/ansible/group_vars/all/compute @@ -18,7 +18,8 @@ compute_network_interfaces: > compute_default_network_interfaces: > {{ ([admin_oc_net_name, internal_net_name, - storage_net_name] + + storage_net_name, + tunnel_net_name] + (external_net_names if kolla_enable_neutron_provider_networks | bool else [])) | unique | list }} # List of extra networks to which compute nodes are attached. diff --git a/ansible/group_vars/all/controllers b/ansible/group_vars/all/controllers index 360d9dba7..bc3812d15 100644 --- a/ansible/group_vars/all/controllers +++ b/ansible/group_vars/all/controllers @@ -32,7 +32,8 @@ controller_extra_network_interfaces: [] # List of network interfaces to which network nodes are attached. controller_network_host_network_interfaces: > - {{ ([public_net_name] + + {{ ([public_net_name, + tunnel_net_name] + external_net_names) | unique | list }} ############################################################################### diff --git a/ansible/group_vars/all/network b/ansible/group_vars/all/network index affb8ffdc..0646b3cb1 100644 --- a/ansible/group_vars/all/network +++ b/ansible/group_vars/all/network @@ -40,6 +40,9 @@ public_net_name: > if external_net_names | length > 0 else None }} +# Name of the network used by Neutron to carry tenant overlay network traffic. +tunnel_net_name: "{{ internal_net_name }}" + # Name of the network used to carry storage data traffic. storage_net_name: 'storage_net' diff --git a/ansible/kolla-ansible.yml b/ansible/kolla-ansible.yml index e495a9344..56343ca43 100644 --- a/ansible/kolla-ansible.yml +++ b/ansible/kolla-ansible.yml @@ -65,6 +65,7 @@ kolla_provision_interface: "{{ provision_wl_net_name | net_interface(controller_host) | replace('-', '_') }}" kolla_inspector_dnsmasq_interface: "{{ inspection_net_name | net_interface(controller_host) | replace('-', '_') }}" kolla_dns_interface: "{{ public_net_name | net_interface(controller_host) | replace('-', '_') }}" + kolla_tunnel_interface: "{{ tunnel_net_name | net_interface(controller_host) | replace('-', '_') }}" - name: Validate controller Kolla Ansible network configuration fail: diff --git a/ansible/roles/kolla-ansible/defaults/main.yml b/ansible/roles/kolla-ansible/defaults/main.yml index abbdc28aa..cbd5e5585 100644 --- a/ansible/roles/kolla-ansible/defaults/main.yml +++ b/ansible/roles/kolla-ansible/defaults/main.yml @@ -143,6 +143,7 @@ kolla_api_interface: kolla_storage_interface: kolla_cluster_interface: kolla_dns_interface: +kolla_tunnel_interface: # This is the raw interface given to neutron as its external network port. Even # though an IP address can exist on this interface, it will be unusable in most diff --git a/ansible/roles/kolla-ansible/templates/globals.yml.j2 b/ansible/roles/kolla-ansible/templates/globals.yml.j2 index 472cb6d72..445ed53bd 100644 --- a/ansible/roles/kolla-ansible/templates/globals.yml.j2 +++ b/ansible/roles/kolla-ansible/templates/globals.yml.j2 @@ -102,7 +102,7 @@ kolla_external_vip_interface: "{{ kolla_external_vip_interface }}" storage_interface: "{{ kolla_storage_interface }}" cluster_interface: "{{ kolla_cluster_interface }}" dns_interface: "{{ kolla_dns_interface }}" -# NOTE: tunnel_interface is unused. +tunnel_interface: "{{ kolla_tunnel_interface }}" # This is the raw interface given to neutron as its external network port. Even # though an IP address can exist on this interface, it will be unusable in most diff --git a/ansible/roles/kolla-ansible/tests/test-defaults.yml b/ansible/roles/kolla-ansible/tests/test-defaults.yml index 8a66d4846..8067afe63 100644 --- a/ansible/roles/kolla-ansible/tests/test-defaults.yml +++ b/ansible/roles/kolla-ansible/tests/test-defaults.yml @@ -44,6 +44,7 @@ kolla_bifrost_network_interface: "eth8" kolla_provision_interface: "eth9" kolla_inspector_dnsmasq_interface: "eth10" + kolla_tunnel_interface: "eth11" kolla_enable_tls_external: False kolla_enable_grafana: False kolla_external_fqdn_cert: "fake-cert" @@ -91,6 +92,7 @@ neutron_bridge_name: "br0,br1" bifrost_network_interface: "eth8" ironic_dnsmasq_interface: "eth10" + tunnel_interface: "eth11" neutron_plugin_agent: "openvswitch" kolla_enable_tls_external: False kolla_external_fqdn_cert: "fake-cert" diff --git a/ansible/roles/kolla-ansible/tests/test-extras.yml b/ansible/roles/kolla-ansible/tests/test-extras.yml index be579663d..50b142f89 100644 --- a/ansible/roles/kolla-ansible/tests/test-extras.yml +++ b/ansible/roles/kolla-ansible/tests/test-extras.yml @@ -49,6 +49,7 @@ kolla_bifrost_network_interface: "eth8" kolla_provision_interface: "eth9" kolla_inspector_dnsmasq_interface: "eth10" + kolla_tunnel_interface: "eth11" kolla_neutron_ml2_type_drivers: - "fake-ml2-type-1" - "fake-ml2-type-2" @@ -186,6 +187,7 @@ neutron_bridge_name: "br0,br1" bifrost_network_interface: "eth8" ironic_dnsmasq_interface: "eth10" + tunnel_interface: "eth11" neutron_plugin_agent: "openvswitch" kolla_enable_tls_external: False kolla_external_fqdn_cert: "fake-cert" diff --git a/dev/dev-vagrant.yml b/dev/dev-vagrant.yml index dbf149c11..97ed653fc 100644 --- a/dev/dev-vagrant.yml +++ b/dev/dev-vagrant.yml @@ -27,6 +27,7 @@ oob_wl_net_name: aio provision_wl_net_name: aio internal_net_name: aio public_net_name: aio +tunnel_net_name: aio external_net_name: aio storage_net_name: aio storage_mgmt_net_name: aio diff --git a/doc/source/configuration/network.rst b/doc/source/configuration/network.rst index b5957356e..58ec1ec8b 100644 --- a/doc/source/configuration/network.rst +++ b/doc/source/configuration/network.rst @@ -420,6 +420,9 @@ Internal network (``internal_net_name``) Name of the network used to expose the internal OpenStack API endpoints. Public network (``public_net_name``) Name of the network used to expose the public OpenStack API endpoints. +Tunnel network (``tunnel_net_name``) + Name of the network used by Neutron to carry tenant overlay network + traffic. External networks (``external_net_names``, deprecated: ``external_net_name``) List of names of networks used to provide external network access via Neutron. If ``external_net_name`` is defined, ``external_net_names`` @@ -450,6 +453,7 @@ To configure network roles in a system with two networks, ``example1`` and provision_wl_net_name: example2 internal_net_name: example2 public_net_name: example2 + tunnel_net_name: example2 external_net_name: example2 storage_net_name: example2 storage_mgmt_net_name: example2 @@ -661,6 +665,7 @@ attached to the following networks: * public network * external network +* tunnel network This list may be extended by setting ``controller_extra_network_interfaces`` to a list of names of additional networks to attach. Alternatively, the list may be @@ -692,6 +697,7 @@ By default, virtualised compute hosts are attached to the following networks: * overcloud admin network * internal network * storage network +* tunnel network This list may be extended by setting ``compute_extra_network_interfaces`` to a list of names of additional networks to attach. Alternatively, the list may be diff --git a/etc/kayobe/networks.yml b/etc/kayobe/networks.yml index fdc1420e1..4062c6f58 100644 --- a/etc/kayobe/networks.yml +++ b/etc/kayobe/networks.yml @@ -36,6 +36,9 @@ # Name of the network used to expose the public OpenStack API endpoints. #public_net_name: +# Name of the network used by Neutron to carry tenant overlay network traffic. +#tunnel_net_name: + # Name of the network used to carry storage data traffic. #storage_net_name: diff --git a/releasenotes/notes/support_configuring_tunnel_network-1646eef887d72abf.yaml b/releasenotes/notes/support_configuring_tunnel_network-1646eef887d72abf.yaml new file mode 100644 index 000000000..14be93205 --- /dev/null +++ b/releasenotes/notes/support_configuring_tunnel_network-1646eef887d72abf.yaml @@ -0,0 +1,4 @@ +--- +features: + - Support configuring tunnel network and interface for VM to VM + communication.