From e3cd6284fb62a04e0dcb7a144433cf1e27af7fd7 Mon Sep 17 00:00:00 2001 From: Dan Prince Date: Sun, 5 Jul 2015 13:56:28 -0400 Subject: [PATCH] Add NeutronExternalNetworkBridge parameter This patch adds a new parameter to configure the neutron external network bridge. This setting applies to the bridge used in the Neutron l3_agent.ini file and can by useful if you wish to set external_network_bridge = '' in that file. As part of this fix we also update the environment file for network isolation so that we automatically set the new NeutronExternalNetworkBridge to an empty string. This fixes an issue where overcloud floating IPs did not work correctly when using the external network interface for floating IP traffic. Change-Id: I3bfcda8746780ea0851d88ed6db8557e261cef0d --- controller.yaml | 4 ++++ environments/net-bond-with-vlans.yaml | 6 ++++++ environments/net-single-nic-with-vlans.yaml | 6 ++++++ overcloud-without-mergepy.yaml | 5 +++++ puppet/controller-puppet.yaml | 6 ++++++ 5 files changed, 27 insertions(+) diff --git a/controller.yaml b/controller.yaml index 01c69f02ff..6387f24e50 100644 --- a/controller.yaml +++ b/controller.yaml @@ -221,6 +221,10 @@ parameters: type: string hidden: true default: '' # Has to be here because of the ignored empty value bug + NeutronExternalNetworkBridge: + description: Name of bridge used for external network traffic. + type: string + default: 'br-ex' NeutronBridgeMappings: description: > The OVS logical->physical bridge mappings to use. See the Neutron diff --git a/environments/net-bond-with-vlans.yaml b/environments/net-bond-with-vlans.yaml index 38c31cac0a..73f71324cb 100644 --- a/environments/net-bond-with-vlans.yaml +++ b/environments/net-bond-with-vlans.yaml @@ -11,3 +11,9 @@ resource_registry: OS::TripleO::Controller::Net::SoftwareConfig: ../network/config/bond-with-vlans/controller.yaml OS::TripleO::ObjectStorage::Net::SoftwareConfig: ../network/config/bond-with-vlans/swift-storage.yaml OS::TripleO::CephStorage::Net::SoftwareConfig: ../network/config/bond-with-vlans/ceph-storage.yaml + +parameters: + # This sets 'external_network_bridge' in l3_agent.ini to an empty string + # so that external networks act like provider bridge networks (they + # will plug into br-int instead of br-ex) + NeutronExternalNetworkBridge: "''" diff --git a/environments/net-single-nic-with-vlans.yaml b/environments/net-single-nic-with-vlans.yaml index b087b3e4cc..8561acd39a 100644 --- a/environments/net-single-nic-with-vlans.yaml +++ b/environments/net-single-nic-with-vlans.yaml @@ -11,3 +11,9 @@ resource_registry: OS::TripleO::Controller::Net::SoftwareConfig: ../network/config/single-nic-vlans/controller.yaml OS::TripleO::ObjectStorage::Net::SoftwareConfig: ../network/config/single-nic-vlans/swift-storage.yaml OS::TripleO::CephStorage::Net::SoftwareConfig: ../network/config/single-nic-vlans/ceph-storage.yaml + +parameters: + # This sets 'external_network_bridge' in l3_agent.ini to an empty string + # so that external networks act like provider bridge networks (they + # will plug into br-int instead of br-ex) + NeutronExternalNetworkBridge: "''" diff --git a/overcloud-without-mergepy.yaml b/overcloud-without-mergepy.yaml index 5d17546855..add10b53c6 100644 --- a/overcloud-without-mergepy.yaml +++ b/overcloud-without-mergepy.yaml @@ -76,6 +76,10 @@ parameters: type: string constraints: - custom_constraint: nova.keypair + NeutronExternalNetworkBridge: + description: Name of bridge used for external network traffic. + type: string + default: 'br-ex' NeutronBridgeMappings: description: > The OVS logical->physical bridge mappings to use. See the Neutron @@ -653,6 +657,7 @@ resources: NeutronPublicInterfaceIP: {get_param: NeutronPublicInterfaceIP} NeutronFlatNetworks: {get_param: NeutronFlatNetworks} NeutronBridgeMappings: {get_param: NeutronBridgeMappings} + NeutronExternalNetworkBridge: {get_param: NeutronExternalNetworkBridge} NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling} NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges} NeutronPublicInterface: {get_param: NeutronPublicInterface} diff --git a/puppet/controller-puppet.yaml b/puppet/controller-puppet.yaml index 1e563331d9..c5adeb91df 100644 --- a/puppet/controller-puppet.yaml +++ b/puppet/controller-puppet.yaml @@ -226,6 +226,10 @@ parameters: type: string hidden: true default: '' # Has to be here because of the ignored empty value bug + NeutronExternalNetworkBridge: + description: Name of bridge used for external network traffic. + type: string + default: 'br-ex' NeutronBridgeMappings: description: > The OVS logical->physical bridge mappings to use. See the Neutron @@ -660,6 +664,7 @@ resources: - "','" - {get_param: NeutronNetworkVLANRanges} neutron_bridge_mappings: {get_param: NeutronBridgeMappings} + neutron_external_network_bridge: {get_param: NeutronExternalNetworkBridge} neutron_public_interface: {get_param: NeutronPublicInterface} neutron_public_interface_raw_device: {get_param: NeutronPublicInterfaceRawDevice} neutron_public_interface_default_route: {get_param: NeutronPublicInterfaceDefaultRoute} @@ -916,6 +921,7 @@ resources: neutron::server::auth_uri: {get_input: keystone_auth_uri} neutron::server::identity_uri: {get_input: keystone_identity_uri} neutron::server::database_connection: {get_input: neutron_dsn} + neutron::agents::l3::external_network_bridge: {get_input: neutron_external_network_bridge} neutron::agents::ml2::ovs::enable_tunneling: {get_input: neutron_enable_tunneling} neutron::agents::ml2::ovs::local_ip: {get_input: neutron_local_ip} neutron_flat_networks: {get_input: neutron_flat_networks}