From b5ae7d21a652aa027233f4768b8752cda20d6440 Mon Sep 17 00:00:00 2001 From: Emilien Macchi Date: Wed, 5 Feb 2014 17:32:04 +0100 Subject: [PATCH 1/2] network: enable more features * L2 population * Provider networks capabilities (VLAN) Close bug #167 Signed-off-by: Emilien Macchi --- manifests/network.pp | 35 +++++++++++++------ spec/classes/cloud_network_compute_spec.rb | 21 ++++++----- spec/classes/cloud_network_controller_spec.rb | 21 ++++++----- spec/classes/cloud_network_dhcp_spec.rb | 21 ++++++----- spec/classes/cloud_network_l3_spec.rb | 21 ++++++----- spec/classes/cloud_network_lbaas_spec.rb | 21 ++++++----- spec/classes/cloud_network_metadata_spec.rb | 21 ++++++----- spec/classes/cloud_network_vpn_spec.rb | 21 ++++++----- 8 files changed, 115 insertions(+), 67 deletions(-) diff --git a/manifests/network.pp b/manifests/network.pp index 86415f9b..a4490793 100644 --- a/manifests/network.pp +++ b/manifests/network.pp @@ -39,14 +39,24 @@ # (optional) Which interface we connect to create overlay tunnels. # Default value in params # +# [*provider_vlan_ranges*] +# (optionnal) VLAN range for provider networks +# Default value to ['physnet1:1000:2999'] +# +# [*provider_bridge_mappings*] +# (optionnal) Bridge mapping for provider networks +# Default value to ['physnet1:br-eth1'] +# class cloud::network( - $verbose = $os_params::verbose, - $debug = $os_params::debug, - $rabbit_hosts = $os_params::rabbit_hosts, - $rabbit_password = $os_params::rabbit_password, - $tunnel_eth = $os_params::tunnel_eth, - $api_eth = $os_params::api_eth + $verbose = $os_params::verbose, + $debug = $os_params::debug, + $rabbit_hosts = $os_params::rabbit_hosts, + $rabbit_password = $os_params::rabbit_password, + $tunnel_eth = $os_params::tunnel_eth, + $api_eth = $os_params::api_eth, + $provider_vlan_ranges = ['physnet1:1000:2999'], + $provider_bridge_mappings = ['physnet1:br-eth1'] ) { class { 'neutron': @@ -65,15 +75,18 @@ class cloud::network( class { 'neutron::agents::ovs': enable_tunneling => true, + tunnel_types => ['gre'], + bridge_mappings => $provider_bridge_mappings, local_ip => $tunnel_eth } class { 'neutron::plugins::ml2': - type_drivers => ['gre'], - tenant_network_types => ['gre'], - mechanism_drivers => ['openvswitch'], - tunnel_id_ranges => ['1:10000'], - enable_security_group => 'neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver' + type_drivers => ['gre','vlan'], + tenant_network_types => ['gre'], + network_vlan_ranges => $provider_vlan_ranges, + tunnel_id_ranges => ['1:10000'], + mechanism_drivers => ['openvswitch','l2population'], + enable_security_group => 'neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver' } } diff --git a/spec/classes/cloud_network_compute_spec.rb b/spec/classes/cloud_network_compute_spec.rb index 8da7bc5e..7a827596 100644 --- a/spec/classes/cloud_network_compute_spec.rb +++ b/spec/classes/cloud_network_compute_spec.rb @@ -24,12 +24,14 @@ describe 'cloud::network::compute' do let :pre_condition do "class { 'cloud::network': - rabbit_hosts => ['10.0.0.1'], - rabbit_password => 'secrete', - tunnel_eth => '10.0.1.1', - api_eth => '10.0.0.1', - verbose => true, - debug => true }" + rabbit_hosts => ['10.0.0.1'], + rabbit_password => 'secrete', + tunnel_eth => '10.0.1.1', + api_eth => '10.0.0.1', + provider_vlan_ranges => ['physnet1:1000:2999'], + provider_bridge_mappings => ['physnet1:br-eth1'], + verbose => true, + debug => true }" end let :params do @@ -55,13 +57,16 @@ describe 'cloud::network::compute' do ) should contain_class('neutron::agents::ovs').with( :enable_tunneling => true, + :tunnel_types => ['gre'], + :bridge_mappings => ['physnet1:br-eth1'], :local_ip => '10.0.1.1' ) should contain_class('neutron::plugins::ml2').with( - :type_drivers => ['gre'], + :type_drivers => ['gre','vlan'], :tenant_network_types => ['gre'], - :mechanism_drivers => ['openvswitch'], + :mechanism_drivers => ['openvswitch','l2population'], :tunnel_id_ranges => ['1:10000'], + :network_vlan_ranges => ['physnet1:1000:2999'], :enable_security_group => 'neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver' ) end diff --git a/spec/classes/cloud_network_controller_spec.rb b/spec/classes/cloud_network_controller_spec.rb index 7c6886e0..32ee1d16 100644 --- a/spec/classes/cloud_network_controller_spec.rb +++ b/spec/classes/cloud_network_controller_spec.rb @@ -24,12 +24,14 @@ describe 'cloud::network::controller' do let :pre_condition do "class { 'cloud::network': - rabbit_hosts => ['10.0.0.1'], - rabbit_password => 'secrete', - tunnel_eth => '10.0.1.1', - api_eth => '10.0.0.1', - verbose => true, - debug => true }" + rabbit_hosts => ['10.0.0.1'], + rabbit_password => 'secrete', + tunnel_eth => '10.0.1.1', + api_eth => '10.0.0.1', + provider_vlan_ranges => ['physnet1:1000:2999'], + provider_bridge_mappings => ['physnet1:br-eth1'], + verbose => true, + debug => true }" end let :params do @@ -59,13 +61,16 @@ describe 'cloud::network::controller' do ) should contain_class('neutron::agents::ovs').with( :enable_tunneling => true, + :tunnel_types => ['gre'], + :bridge_mappings => ['physnet1:br-eth1'], :local_ip => '10.0.1.1' ) should contain_class('neutron::plugins::ml2').with( - :type_drivers => ['gre'], + :type_drivers => ['gre','vlan'], :tenant_network_types => ['gre'], - :mechanism_drivers => ['openvswitch'], + :mechanism_drivers => ['openvswitch','l2population'], :tunnel_id_ranges => ['1:10000'], + :network_vlan_ranges => ['physnet1:1000:2999'], :enable_security_group => 'neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver' ) end diff --git a/spec/classes/cloud_network_dhcp_spec.rb b/spec/classes/cloud_network_dhcp_spec.rb index 636e463e..ff01877f 100644 --- a/spec/classes/cloud_network_dhcp_spec.rb +++ b/spec/classes/cloud_network_dhcp_spec.rb @@ -24,12 +24,14 @@ describe 'cloud::network::dhcp' do let :pre_condition do "class { 'cloud::network': - rabbit_hosts => ['10.0.0.1'], - rabbit_password => 'secrete', - tunnel_eth => '10.0.1.1', - api_eth => '10.0.0.1', - verbose => true, - debug => true }" + rabbit_hosts => ['10.0.0.1'], + rabbit_password => 'secrete', + tunnel_eth => '10.0.1.1', + api_eth => '10.0.0.1', + provider_vlan_ranges => ['physnet1:1000:2999'], + provider_bridge_mappings => ['physnet1:br-eth1'], + verbose => true, + debug => true }" end let :params do @@ -53,13 +55,16 @@ describe 'cloud::network::dhcp' do ) should contain_class('neutron::agents::ovs').with( :enable_tunneling => true, + :tunnel_types => ['gre'], + :bridge_mappings => ['physnet1:br-eth1'], :local_ip => '10.0.1.1' ) should contain_class('neutron::plugins::ml2').with( - :type_drivers => ['gre'], + :type_drivers => ['gre','vlan'], :tenant_network_types => ['gre'], - :mechanism_drivers => ['openvswitch'], + :mechanism_drivers => ['openvswitch','l2population'], :tunnel_id_ranges => ['1:10000'], + :network_vlan_ranges => ['physnet1:1000:2999'], :enable_security_group => 'neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver' ) end diff --git a/spec/classes/cloud_network_l3_spec.rb b/spec/classes/cloud_network_l3_spec.rb index 151593f5..edb383b7 100644 --- a/spec/classes/cloud_network_l3_spec.rb +++ b/spec/classes/cloud_network_l3_spec.rb @@ -24,12 +24,14 @@ describe 'cloud::network::l3' do let :pre_condition do "class { 'cloud::network': - rabbit_hosts => ['10.0.0.1'], - rabbit_password => 'secrete', - tunnel_eth => '10.0.1.1', - api_eth => '10.0.0.1', - verbose => true, - debug => true }" + rabbit_hosts => ['10.0.0.1'], + rabbit_password => 'secrete', + tunnel_eth => '10.0.1.1', + api_eth => '10.0.0.1', + provider_vlan_ranges => ['physnet1:1000:2999'], + provider_bridge_mappings => ['physnet1:br-eth1'], + verbose => true, + debug => true }" end let :params do @@ -54,13 +56,16 @@ describe 'cloud::network::l3' do ) should contain_class('neutron::agents::ovs').with( :enable_tunneling => true, + :tunnel_types => ['gre'], + :bridge_mappings => ['physnet1:br-eth1'], :local_ip => '10.0.1.1' ) should contain_class('neutron::plugins::ml2').with( - :type_drivers => ['gre'], + :type_drivers => ['gre','vlan'], :tenant_network_types => ['gre'], - :mechanism_drivers => ['openvswitch'], + :mechanism_drivers => ['openvswitch','l2population'], :tunnel_id_ranges => ['1:10000'], + :network_vlan_ranges => ['physnet1:1000:2999'], :enable_security_group => 'neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver' ) end diff --git a/spec/classes/cloud_network_lbaas_spec.rb b/spec/classes/cloud_network_lbaas_spec.rb index e69e0c27..1fc3b8a6 100644 --- a/spec/classes/cloud_network_lbaas_spec.rb +++ b/spec/classes/cloud_network_lbaas_spec.rb @@ -24,12 +24,14 @@ describe 'cloud::network::lbaas' do let :pre_condition do "class { 'cloud::network': - rabbit_hosts => ['10.0.0.1'], - rabbit_password => 'secrete', - tunnel_eth => '10.0.1.1', - api_eth => '10.0.0.1', - verbose => true, - debug => true }" + rabbit_hosts => ['10.0.0.1'], + rabbit_password => 'secrete', + tunnel_eth => '10.0.1.1', + api_eth => '10.0.0.1', + provider_vlan_ranges => ['physnet1:1000:2999'], + provider_bridge_mappings => ['physnet1:br-eth1'], + verbose => true, + debug => true }" end let :params do @@ -53,13 +55,16 @@ describe 'cloud::network::lbaas' do ) should contain_class('neutron::agents::ovs').with( :enable_tunneling => true, + :tunnel_types => ['gre'], + :bridge_mappings => ['physnet1:br-eth1'], :local_ip => '10.0.1.1' ) should contain_class('neutron::plugins::ml2').with( - :type_drivers => ['gre'], + :type_drivers => ['gre','vlan'], :tenant_network_types => ['gre'], - :mechanism_drivers => ['openvswitch'], + :mechanism_drivers => ['openvswitch','l2population'], :tunnel_id_ranges => ['1:10000'], + :network_vlan_ranges => ['physnet1:1000:2999'], :enable_security_group => 'neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver' ) end diff --git a/spec/classes/cloud_network_metadata_spec.rb b/spec/classes/cloud_network_metadata_spec.rb index 27688356..8a5e4505 100644 --- a/spec/classes/cloud_network_metadata_spec.rb +++ b/spec/classes/cloud_network_metadata_spec.rb @@ -24,12 +24,14 @@ describe 'cloud::network::metadata' do let :pre_condition do "class { 'cloud::network': - rabbit_hosts => ['10.0.0.1'], - rabbit_password => 'secrete', - tunnel_eth => '10.0.1.1', - api_eth => '10.0.0.1', - verbose => true, - debug => true }" + rabbit_hosts => ['10.0.0.1'], + rabbit_password => 'secrete', + tunnel_eth => '10.0.1.1', + api_eth => '10.0.0.1', + provider_vlan_ranges => ['physnet1:1000:2999'], + provider_bridge_mappings => ['physnet1:br-eth1'], + verbose => true, + debug => true }" end let :params do @@ -60,13 +62,16 @@ describe 'cloud::network::metadata' do ) should contain_class('neutron::agents::ovs').with( :enable_tunneling => true, + :tunnel_types => ['gre'], + :bridge_mappings => ['physnet1:br-eth1'], :local_ip => '10.0.1.1' ) should contain_class('neutron::plugins::ml2').with( - :type_drivers => ['gre'], + :type_drivers => ['gre','vlan'], :tenant_network_types => ['gre'], - :mechanism_drivers => ['openvswitch'], + :mechanism_drivers => ['openvswitch','l2population'], :tunnel_id_ranges => ['1:10000'], + :network_vlan_ranges => ['physnet1:1000:2999'], :enable_security_group => 'neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver' ) end diff --git a/spec/classes/cloud_network_vpn_spec.rb b/spec/classes/cloud_network_vpn_spec.rb index 2ada0f39..2c9fb1bc 100644 --- a/spec/classes/cloud_network_vpn_spec.rb +++ b/spec/classes/cloud_network_vpn_spec.rb @@ -24,12 +24,14 @@ describe 'cloud::network::vpn' do let :pre_condition do "class { 'cloud::network': - rabbit_hosts => ['10.0.0.1'], - rabbit_password => 'secrete', - tunnel_eth => '10.0.1.1', - api_eth => '10.0.0.1', - verbose => true, - debug => true }" + rabbit_hosts => ['10.0.0.1'], + rabbit_password => 'secrete', + tunnel_eth => '10.0.1.1', + api_eth => '10.0.0.1', + provider_vlan_ranges => ['physnet1:1000:2999'], + provider_bridge_mappings => ['physnet1:br-eth1'], + verbose => true, + debug => true }" end it 'configure neutron common' do @@ -49,13 +51,16 @@ describe 'cloud::network::vpn' do ) should contain_class('neutron::agents::ovs').with( :enable_tunneling => true, + :tunnel_types => ['gre'], + :bridge_mappings => ['physnet1:br-eth1'], :local_ip => '10.0.1.1' ) should contain_class('neutron::plugins::ml2').with( - :type_drivers => ['gre'], + :type_drivers => ['gre','vlan'], :tenant_network_types => ['gre'], - :mechanism_drivers => ['openvswitch'], + :mechanism_drivers => ['openvswitch','l2population'], :tunnel_id_ranges => ['1:10000'], + :network_vlan_ranges => ['physnet1:1000:2999'], :enable_security_group => 'neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver' ) end From 4e0aae66c29245875a77eaffee4aea12c4ca12b7 Mon Sep 17 00:00:00 2001 From: Emilien Macchi Date: Wed, 5 Feb 2014 17:51:26 +0100 Subject: [PATCH 2/2] network: use params to configure provider networks Close bug #167 Signed-off-by: Emilien Macchi --- manifests/network.pp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/manifests/network.pp b/manifests/network.pp index a4490793..918caeb3 100644 --- a/manifests/network.pp +++ b/manifests/network.pp @@ -41,11 +41,11 @@ # # [*provider_vlan_ranges*] # (optionnal) VLAN range for provider networks -# Default value to ['physnet1:1000:2999'] +# Default value in params # # [*provider_bridge_mappings*] # (optionnal) Bridge mapping for provider networks -# Default value to ['physnet1:br-eth1'] +# Default value in params # class cloud::network( @@ -55,8 +55,8 @@ class cloud::network( $rabbit_password = $os_params::rabbit_password, $tunnel_eth = $os_params::tunnel_eth, $api_eth = $os_params::api_eth, - $provider_vlan_ranges = ['physnet1:1000:2999'], - $provider_bridge_mappings = ['physnet1:br-eth1'] + $provider_vlan_ranges = $os_params::provider_vlan_ranges, + $provider_bridge_mappings = $os_params::provider_bridge_mappings ) { class { 'neutron':