OVN: Provide the option to define NeutronBridgeMappings as a role parameter

In order for a node to provide external connectivity to tenant traffic,
ovn-bridge-mappings should be defined which is read by ovn-controller service.
This value comes from the T-H-T param 'NeutronBridgeMappings'. Presently
this param is defined with the default value "datacentre:br-ex" and is configured
on every node where ovn-controller service is enabled. This would cause problems
if some of the hosts do not provide external connectvity.

To solve this problem, this patch adds 'NeutronBridgeMappings' as a role parameter
so that it can set to empty string if the role doesn't provide external connectivity.

In the OVN environment template files, this param is set to empty for Compute role.

Since NeutronBridgeMappings is also used by neutron-ovs-agent service, this patch
also modifies puppet/services/neutron-ovs-agent.yaml to define NeutronBridgeMappings
as a role parameter.

Change-Id: I6a00b8dc1ff387cc5e1e62b4d9d7da5e1239ee31
Closes-bug: #1730711
This commit is contained in:
Numan Siddique 2017-11-08 09:23:08 +05:30
parent 2f12c9c750
commit 1e43e5b08f
6 changed files with 56 additions and 14 deletions

View File

@ -23,3 +23,6 @@ parameter_defaults:
NeutronNetworkType: 'geneve'
NeutronServicePlugins: 'qos,ovn-router,trunk'
NeutronVniRanges: ['1:65536', ]
ComputeParameters:
NeutronBridgeMappings: ""

View File

@ -23,3 +23,6 @@ parameter_defaults:
NeutronNetworkType: 'geneve'
NeutronServicePlugins: 'qos,ovn-router,trunk'
NeutronVniRanges: ['1:65536', ]
ComputeParameters:
NeutronBridgeMappings: ""

View File

@ -23,3 +23,6 @@ parameter_defaults:
NeutronNetworkType: 'geneve'
NeutronServicePlugins: 'qos,ovn-router,trunk'
NeutronVniRanges: ['1:65536', ]
ComputeParameters:
NeutronBridgeMappings: ""

View File

@ -23,3 +23,6 @@ parameter_defaults:
NeutronNetworkType: 'geneve'
NeutronServicePlugins: 'qos,ovn-router,trunk'
NeutronVniRanges: ['1:65536', ]
ComputeParameters:
NeutronBridgeMappings: ""

View File

@ -101,6 +101,20 @@ resources:
DefaultPasswords: {get_param: DefaultPasswords}
EndpointMap: {get_param: EndpointMap}
# Merging role-specific parameters (RoleParameters) with the default parameters.
# RoleParameters will have the precedence over the default parameters.
RoleParametersValue:
type: OS::Heat::Value
properties:
type: json
value:
map_replace:
- map_replace:
- neutron::agents::ml2::ovs::bridge_mappings: NeutronBridgeMappings
- values: {get_param: [RoleParameters]}
- values:
NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
outputs:
role_data:
description: Role data for the Neutron OVS agent service.
@ -113,10 +127,10 @@ outputs:
config_settings:
map_merge:
- get_attr: [NeutronBase, role_data, config_settings]
- get_attr: [RoleParametersValue, value]
- neutron::agents::ml2::ovs::l2_population: {get_param: NeutronEnableL2Pop}
neutron::agents::ml2::ovs::enable_distributed_routing: {get_param: NeutronEnableDVR}
neutron::agents::ml2::ovs::arp_responder: {get_param: NeutronEnableARPResponder}
neutron::agents::ml2::ovs::bridge_mappings: {get_param: NeutronBridgeMappings}
neutron::agents::ml2::ovs::tunnel_types: {get_param: NeutronTunnelTypes}
neutron::agents::ml2::ovs::extensions: {get_param: NeutronAgentExtensions}
# NOTE: bind IP is found in Heat replacing the network name with the

View File

@ -55,25 +55,41 @@ parameters:
default: "br-int"
resources:
# Merging role-specific parameters (RoleParameters) with the default parameters.
# RoleParameters will have the precedence over the default parameters.
RoleParametersValue:
type: OS::Heat::Value
properties:
type: json
value:
map_replace:
- map_replace:
- ovn::controller::ovn_bridge_mappings: NeutronBridgeMappings
- values: {get_param: [RoleParameters]}
- values:
NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
outputs:
role_data:
description: Role data for the OVN Controller agent
value:
service_name: ovn_controller
config_settings:
ovn::southbound::port: {get_param: OVNSouthboundServerPort}
ovn::controller::ovn_encap_type: {get_param: OVNTunnelEncapType}
ovn::controller::ovn_encap_ip: {get_param: [ServiceNetMap, NeutronTenantNetwork]}
ovn::controller::ovn_bridge_mappings: {get_param: NeutronBridgeMappings}
ovn::controller::ovn_bridge: {get_param: OVNIntegrationBridge}
nova::compute::force_config_drive: true
tripleo.ovn_controller.firewall_rules:
'118 neutron vxlan networks':
proto: 'udp'
dport: 4789
'119 neutron geneve networks':
proto: 'udp'
dport: 6081
map_merge:
- get_attr: [RoleParametersValue, value]
- ovn::southbound::port: {get_param: OVNSouthboundServerPort}
ovn::controller::ovn_encap_type: {get_param: OVNTunnelEncapType}
ovn::controller::ovn_encap_ip: {get_param: [ServiceNetMap, NeutronTenantNetwork]}
ovn::controller::ovn_bridge: {get_param: OVNIntegrationBridge}
nova::compute::force_config_drive: true
tripleo.ovn_controller.firewall_rules:
'118 neutron vxlan networks':
proto: 'udp'
dport: 4789
'119 neutron geneve networks':
proto: 'udp'
dport: 6081
step_config: |
include ::tripleo::profile::base::neutron::agents::ovn
upgrade_tasks: