From f1391db64ae719ac90a9bbc13dfb3ea580ba5307 Mon Sep 17 00:00:00 2001 From: Emilien Macchi Date: Tue, 2 Dec 2014 14:53:19 -0500 Subject: [PATCH] Bring ML2 Linuxbridge plugin support * Allow to use ml2_lb agent (ML2 with linuxbridge) * Add linuxbridge to mechanism_drivers in Neutron Plugin configuration when using ML2. Change-Id: Ic80b3c6830f36cae10a292329cf207f5996ce778 --- manifests/network/controller.pp | 2 +- manifests/network/vswitch.pp | 20 ++++++++++++++++--- spec/classes/cloud_network_controller_spec.rb | 2 +- 3 files changed, 19 insertions(+), 5 deletions(-) diff --git a/manifests/network/controller.pp b/manifests/network/controller.pp index 4159cee4..54e9e294 100644 --- a/manifests/network/controller.pp +++ b/manifests/network/controller.pp @@ -102,7 +102,7 @@ class cloud::network::controller( network_vlan_ranges => $provider_vlan_ranges, tunnel_id_ranges => ['1:10000'], flat_networks => $flat_networks, - mechanism_drivers => ['openvswitch','l2population'], + mechanism_drivers => ['linuxbridge','openvswitch','l2population'], enable_security_group => true } } diff --git a/manifests/network/vswitch.pp b/manifests/network/vswitch.pp index 5f8ba2a7..ad7f7ad3 100644 --- a/manifests/network/vswitch.pp +++ b/manifests/network/vswitch.pp @@ -19,7 +19,7 @@ # # [*driver*] # (optional) Neutron vswitch driver -# Supported values: 'ml2_ovs', 'n1kv_vem'. +# Supported values: 'ml2_ovs', 'ml2_lb', 'n1kv_vem'. # Note: 'n1kv_vem' currently works only on Red Hat systems. # Defaults to 'ml2_ovs' # @@ -132,10 +132,11 @@ class cloud::network::vswitch( $external_int = 'eth1', $external_bridge = 'br-pub', $firewall_settings = {}, - # ml2_ovs + # common to ml2 $tunnel_types = ['gre'], - $provider_bridge_mappings = ['public:br-pub'], $tunnel_eth = '127.0.0.1', + # ml2_ovs + $provider_bridge_mappings = ['public:br-pub'], # n1kv_vem $n1kv_vsm_ip = '127.0.0.1', $n1kv_vsm_domain_id = 1000, @@ -166,6 +167,19 @@ class cloud::network::vswitch( } } + 'ml2_lb': { + class { 'neutron::agents::ml2::linuxbridge': + l2_population => true, + polling_interval => '15', + tunnel_types => $tunnel_types, + local_ip => $tunnel_eth + } + + if $::osfamily == 'RedHat' { + kmod::load { 'ip_gre': } + } + } + 'n1kv_vem': { # We don't check if we are on Red Hat system # (already done by puppet-neutron) diff --git a/spec/classes/cloud_network_controller_spec.rb b/spec/classes/cloud_network_controller_spec.rb index 3ed3fb66..6d48ab0f 100644 --- a/spec/classes/cloud_network_controller_spec.rb +++ b/spec/classes/cloud_network_controller_spec.rb @@ -73,7 +73,7 @@ describe 'cloud::network::controller' do is_expected.to contain_class('neutron::plugins::ml2').with( :type_drivers => ['gre', 'vlan', 'flat'], :tenant_network_types => ['gre'], - :mechanism_drivers => ['openvswitch','l2population'], + :mechanism_drivers => ['linuxbridge','openvswitch','l2population'], :tunnel_id_ranges => ['1:10000'], :network_vlan_ranges => ['physnet1:1000:2999'], :flat_networks => ['public'],