Merge "Make vswitch optional for ovs agent configuration"
This commit is contained in:
@@ -97,6 +97,14 @@
|
|||||||
# flow tables resetting
|
# flow tables resetting
|
||||||
# Defaults to false
|
# Defaults to false
|
||||||
#
|
#
|
||||||
|
# [*manage_vswitch*]
|
||||||
|
# (optional) This boolean is used to indicate if this class should manage the
|
||||||
|
# vswitch software installation and the ovs bridges/ports from the
|
||||||
|
# $bridge_mappings parameter. If manage_vswitch is set to true, then we will
|
||||||
|
# require the vswitch::ovs and configure the ovs bridges/ports using the
|
||||||
|
# mappings provided as part of the $bridge_mappings parameters.
|
||||||
|
# Defaults to true
|
||||||
|
#
|
||||||
class neutron::agents::ml2::ovs (
|
class neutron::agents::ml2::ovs (
|
||||||
$package_ensure = 'present',
|
$package_ensure = 'present',
|
||||||
$enabled = true,
|
$enabled = true,
|
||||||
@@ -115,10 +123,13 @@ class neutron::agents::ml2::ovs (
|
|||||||
$firewall_driver = 'neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver',
|
$firewall_driver = 'neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver',
|
||||||
$enable_distributed_routing = false,
|
$enable_distributed_routing = false,
|
||||||
$drop_flows_on_start = false,
|
$drop_flows_on_start = false,
|
||||||
|
$manage_vswitch = true,
|
||||||
) {
|
) {
|
||||||
|
|
||||||
include ::neutron::params
|
include ::neutron::params
|
||||||
require vswitch::ovs
|
if $manage_vswitch {
|
||||||
|
require vswitch::ovs
|
||||||
|
}
|
||||||
|
|
||||||
if $enable_tunneling and ! $local_ip {
|
if $enable_tunneling and ! $local_ip {
|
||||||
fail('Local ip for ovs agent must be set when tunneling is enabled')
|
fail('Local ip for ovs agent must be set when tunneling is enabled')
|
||||||
@@ -149,11 +160,13 @@ class neutron::agents::ml2::ovs (
|
|||||||
neutron_agent_ovs {
|
neutron_agent_ovs {
|
||||||
'ovs/bridge_mappings': value => $br_map_str;
|
'ovs/bridge_mappings': value => $br_map_str;
|
||||||
}
|
}
|
||||||
neutron::plugins::ovs::bridge{ $bridge_mappings:
|
if ($manage_vswitch) {
|
||||||
before => Service['neutron-ovs-agent-service'],
|
neutron::plugins::ovs::bridge{ $bridge_mappings:
|
||||||
}
|
before => Service['neutron-ovs-agent-service'],
|
||||||
neutron::plugins::ovs::port{ $bridge_uplinks:
|
}
|
||||||
before => Service['neutron-ovs-agent-service'],
|
neutron::plugins::ovs::port{ $bridge_uplinks:
|
||||||
|
before => Service['neutron-ovs-agent-service'],
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -20,7 +20,8 @@ describe 'neutron::agents::ml2::ovs' do
|
|||||||
:arp_responder => false,
|
:arp_responder => false,
|
||||||
:drop_flows_on_start => false,
|
:drop_flows_on_start => false,
|
||||||
:enable_distributed_routing => false,
|
:enable_distributed_routing => false,
|
||||||
:firewall_driver => 'neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver' }
|
:firewall_driver => 'neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver',
|
||||||
|
:manage_vswitch => true }
|
||||||
end
|
end
|
||||||
|
|
||||||
let :default_facts do
|
let :default_facts do
|
||||||
@@ -116,6 +117,10 @@ describe 'neutron::agents::ml2::ovs' do
|
|||||||
params.merge!(:bridge_uplinks => ['br-ex:eth2'],:bridge_mappings => ['default:br-ex'])
|
params.merge!(:bridge_uplinks => ['br-ex:eth2'],:bridge_mappings => ['default:br-ex'])
|
||||||
end
|
end
|
||||||
|
|
||||||
|
it 'should require vswitch::ovs' do
|
||||||
|
is_expected.to contain_class('vswitch::ovs')
|
||||||
|
end
|
||||||
|
|
||||||
it 'configures bridge mappings' do
|
it 'configures bridge mappings' do
|
||||||
is_expected.to contain_neutron_agent_ovs('ovs/bridge_mappings')
|
is_expected.to contain_neutron_agent_ovs('ovs/bridge_mappings')
|
||||||
end
|
end
|
||||||
@@ -133,6 +138,32 @@ describe 'neutron::agents::ml2::ovs' do
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
context 'when supplying bridge mappings for provider networks with manage vswitch set to false' do
|
||||||
|
before :each do
|
||||||
|
params.merge!(:bridge_uplinks => ['br-ex:eth2'],:bridge_mappings => ['default:br-ex'], :manage_vswitch => false)
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'should not require vswitch::ovs' do
|
||||||
|
is_expected.not_to contain_class('vswitch::ovs')
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'configures bridge mappings' do
|
||||||
|
is_expected.to contain_neutron_agent_ovs('ovs/bridge_mappings')
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'should not configure bridge mappings' do
|
||||||
|
is_expected.not_to contain_neutron__plugins__ovs__bridge(params[:bridge_mappings].join(',')).with(
|
||||||
|
:before => 'Service[neutron-ovs-agent-service]'
|
||||||
|
)
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'should not configure bridge uplinks' do
|
||||||
|
is_expected.not_to contain_neutron__plugins__ovs__port(params[:bridge_uplinks].join(',')).with(
|
||||||
|
:before => 'Service[neutron-ovs-agent-service]'
|
||||||
|
)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
context 'when enabling tunneling' do
|
context 'when enabling tunneling' do
|
||||||
context 'without local ip address' do
|
context 'without local ip address' do
|
||||||
before :each do
|
before :each do
|
||||||
|
Reference in New Issue
Block a user