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:
parent
313f2c74ba
commit
b38d52748b
|
@ -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}"],
|
||||
|
|
|
@ -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],
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue