Work around strange interpretation of bridge_uplinks

Explicitly create the external bridge (br-ex) on the node running
the L3 agent.

The neutron module creates bridge_uplinks only when bridge_mappings is
non-empty. That's bogus for GRE configurations, so create the "bridge
uplink" manually.
This commit is contained in:
Florian Haas 2013-10-19 19:00:41 +02:00
parent 313f2c74ba
commit b38d52748b
2 changed files with 15 additions and 11 deletions

View File

@ -3,20 +3,15 @@ class kickstack::neutron::agent::l2::network inherits kickstack {
include kickstack::neutron::config
$tenant_network_type = "$::kickstack::neutron_tenant_network_type"
$external_bridge = $::kickstack::neutron_external_bridge
case "$::kickstack::neutron_plugin" {
'ovs': {
case $tenant_network_type {
'gre': {
$local_tunnel_ip = getvar("ipaddress_${nic_data}")
$bridge_uplinks = ["${::kickstack::neutron_external_bridge}:${nic_external}"]
$bridge_uplinks = ["${external_bridge}:${nic_external}"]
# The neutron module creates bridge_uplinks only when
# bridge_mappings is non-empty. That's bogus for GRE
# configurations, so create the uplink anyway.
::neutron::plugins::ovs::port { "$bridge_uplinks":
require => Class['kickstack::neutron::agent::l3'],
}
class { 'neutron::agents::ovs':
bridge_mappings => [],
bridge_uplinks => [],
@ -24,14 +19,14 @@ class kickstack::neutron::agent::l2::network inherits kickstack {
enable_tunneling => true,
local_ip => $local_tunnel_ip,
tunnel_bridge => $::kickstack::neutron_tunnel_bridge,
require => Neutron::Plugins::Ovs::Port["$bridge_uplinks"],
require => Class['::kickstack::neutron::agent::l3'],
package_ensure => $::kickstack::package_version,
}
}
default: {
$bridge_uplinks = ["br-${nic_data}:${nic_data}"]
unless $kickstack::neutron_network_type == 'single-flat' {
$bridge_uplinks += ["${::kickstack::neutron_external_bridge}:${nic_external}"]
$bridge_uplinks += ["${external_bridge}:${nic_external}"]
}
class { 'neutron::agents::ovs':
bridge_mappings => ["${::kickstack::neutron_physnet}:br-${nic_data}"],

View File

@ -2,7 +2,16 @@ class kickstack::neutron::agent::l3 inherits kickstack {
include kickstack::neutron::config
vs_bridge { 'br-ex': }
$external_bridge = $::kickstack::neutron_external_bridge
vs_bridge { $external_bridge:
ensure => present,
}
vs_port { $::kickstack::nic_external:
ensure => present,
bridge => $external_bridge,
}
class { "::neutron::agents::l3":
debug => $::kickstack::debug,
@ -24,6 +33,6 @@ class kickstack::neutron::agent::l3 inherits kickstack {
default => undef
},
package_ensure => $::kickstack::package_version,
require => Vs_bridge['br-ex'],
require => Vs_bridge[$external_bridge],
}
}