diff --git a/manifests/network.pp b/manifests/network.pp index bb6ef4b9..3fcd9acb 100644 --- a/manifests/network.pp +++ b/manifests/network.pp @@ -75,8 +75,23 @@ # Defaults to 'LOG_LOCAL0' # # [*dhcp_lease_duration*] -# (optionnal) DHCP Lease duration (in seconds) -# Defauls to '120' +# (optional) DHCP Lease duration (in seconds) +# Defaults to '120' +# +# [*tunnel_types*] +# (optional) Handled tunnel types +# Defaults to ['gre'] +# Possible value ['local', 'flat', 'vlan', 'gre', 'vxlan'] +# +# [*tenant_network_types*] +# (optional) Handled tenant network types +# Defaults to ['gre'] +# Possible value ['local', 'flat', 'vlan', 'gre', 'vxlan'] +# +# [*type_drivers*] +# (optional) Drivers to load +# Defaults to ['gre', 'vlan', 'flat'] +# Possible value ['local', 'flat', 'vlan', 'gre', 'vxlan'] # class cloud::network( @@ -94,7 +109,10 @@ class cloud::network( $flat_networks = ['public'], $external_int = 'eth1', $external_bridge = 'br-pub', - $manage_ext_network = false + $manage_ext_network = false, + $tunnel_types = ['gre'], + $tenant_network_types = ['gre'], + $type_drivers = ['gre', 'vlan', 'flat'], ) { # Disable twice logging if syslog is enabled @@ -135,14 +153,14 @@ class cloud::network( class { 'neutron::agents::ovs': enable_tunneling => true, - tunnel_types => ['gre'], + tunnel_types => $tunnel_types, bridge_mappings => $provider_bridge_mappings, local_ip => $tunnel_eth } class { 'neutron::plugins::ml2': - type_drivers => ['gre','vlan','flat'], - tenant_network_types => ['gre'], + type_drivers => $type_drivers, + tenant_network_types => $tenant_network_types, network_vlan_ranges => $provider_vlan_ranges, tunnel_id_ranges => ['1:10000'], flat_networks => $flat_networks, @@ -155,7 +173,7 @@ class cloud::network( # config file, only ML2. I need to patch puppet-neutron. # Follow-up: https://github.com/enovance/puppet-openstack-cloud/issues/199 neutron_plugin_ml2 { - 'agent/tunnel_types': value => ['gre']; + 'agent/tunnel_types': value => $tunnel_types; 'agent/l2_population': value => true; 'agent/polling_interval': value => '15'; 'OVS/local_ip': value => $tunnel_eth; diff --git a/spec/classes/cloud_network_controller_spec.rb b/spec/classes/cloud_network_controller_spec.rb index 0e80758e..7a985319 100644 --- a/spec/classes/cloud_network_controller_spec.rb +++ b/spec/classes/cloud_network_controller_spec.rb @@ -37,6 +37,9 @@ describe 'cloud::network::controller' do debug => true, use_syslog => true, dhcp_lease_duration => '10', + tunnel_types => ['vxlan'], + tenant_network_types => ['vxlan'], + type_drivers => ['gre', 'vlan', 'flat', 'vxlan'], log_facility => 'LOG_LOCAL0' }" end @@ -78,13 +81,13 @@ describe 'cloud::network::controller' do ) should contain_class('neutron::agents::ovs').with( :enable_tunneling => true, - :tunnel_types => ['gre'], + :tunnel_types => ['vxlan'], :bridge_mappings => ['public:br-pub'], :local_ip => '10.0.1.1' ) should contain_class('neutron::plugins::ml2').with( - :type_drivers => ['gre','vlan','flat'], - :tenant_network_types => ['gre'], + :type_drivers => ['gre', 'vlan', 'flat', 'vxlan'], + :tenant_network_types => ['vxlan'], :mechanism_drivers => ['openvswitch','l2population'], :tunnel_id_ranges => ['1:10000'], :network_vlan_ranges => ['physnet1:1000:2999'], diff --git a/spec/classes/cloud_network_dhcp_spec.rb b/spec/classes/cloud_network_dhcp_spec.rb index ce28810b..4b0b127b 100644 --- a/spec/classes/cloud_network_dhcp_spec.rb +++ b/spec/classes/cloud_network_dhcp_spec.rb @@ -37,6 +37,9 @@ describe 'cloud::network::dhcp' do debug => true, use_syslog => true, dhcp_lease_duration => '10', + tunnel_types => ['vxlan'], + tenant_network_types => ['vxlan'], + type_drivers => ['gre', 'vlan', 'flat', 'vxlan'], log_facility => 'LOG_LOCAL0' }" end @@ -66,13 +69,13 @@ describe 'cloud::network::dhcp' do ) should contain_class('neutron::agents::ovs').with( :enable_tunneling => true, - :tunnel_types => ['gre'], + :tunnel_types => ['vxlan'], :bridge_mappings => ['public:br-pub'], :local_ip => '10.0.1.1' ) should contain_class('neutron::plugins::ml2').with( - :type_drivers => ['gre','vlan','flat'], - :tenant_network_types => ['gre'], + :type_drivers => ['gre', 'vlan', 'flat', 'vxlan'], + :tenant_network_types => ['vxlan'], :mechanism_drivers => ['openvswitch','l2population'], :tunnel_id_ranges => ['1:10000'], :network_vlan_ranges => ['physnet1:1000:2999'], diff --git a/spec/classes/cloud_network_l3_spec.rb b/spec/classes/cloud_network_l3_spec.rb index a4cf3a12..2995e126 100644 --- a/spec/classes/cloud_network_l3_spec.rb +++ b/spec/classes/cloud_network_l3_spec.rb @@ -37,6 +37,9 @@ describe 'cloud::network::l3' do debug => true, use_syslog => true, dhcp_lease_duration => '10', + tunnel_types => ['vxlan'], + tenant_network_types => ['vxlan'], + type_drivers => ['gre', 'vlan', 'flat', 'vxlan'], log_facility => 'LOG_LOCAL0' }" end @@ -66,13 +69,13 @@ describe 'cloud::network::l3' do ) should contain_class('neutron::agents::ovs').with( :enable_tunneling => true, - :tunnel_types => ['gre'], + :tunnel_types => ['vxlan'], :bridge_mappings => ['public:br-pub'], :local_ip => '10.0.1.1' ) should contain_class('neutron::plugins::ml2').with( - :type_drivers => ['gre','vlan','flat'], - :tenant_network_types => ['gre'], + :type_drivers => ['gre', 'vlan', 'flat', 'vxlan'], + :tenant_network_types => ['vxlan'], :mechanism_drivers => ['openvswitch','l2population'], :tunnel_id_ranges => ['1:10000'], :network_vlan_ranges => ['physnet1:1000:2999'], diff --git a/spec/classes/cloud_network_lbaas_spec.rb b/spec/classes/cloud_network_lbaas_spec.rb index 3bde49c6..b69deacd 100644 --- a/spec/classes/cloud_network_lbaas_spec.rb +++ b/spec/classes/cloud_network_lbaas_spec.rb @@ -37,6 +37,9 @@ describe 'cloud::network::lbaas' do debug => true, use_syslog => true, dhcp_lease_duration => '10', + tunnel_types => ['vxlan'], + tenant_network_types => ['vxlan'], + type_drivers => ['gre', 'vlan', 'flat', 'vxlan'], log_facility => 'LOG_LOCAL0' }" end @@ -66,13 +69,13 @@ describe 'cloud::network::lbaas' do ) should contain_class('neutron::agents::ovs').with( :enable_tunneling => true, - :tunnel_types => ['gre'], + :tunnel_types => ['vxlan'], :bridge_mappings => ['public:br-pub'], :local_ip => '10.0.1.1' ) should contain_class('neutron::plugins::ml2').with( - :type_drivers => ['gre','vlan','flat'], - :tenant_network_types => ['gre'], + :type_drivers => ['gre', 'vlan', 'flat', 'vxlan'], + :tenant_network_types => ['vxlan'], :mechanism_drivers => ['openvswitch','l2population'], :tunnel_id_ranges => ['1:10000'], :network_vlan_ranges => ['physnet1:1000:2999'], diff --git a/spec/classes/cloud_network_metadata_spec.rb b/spec/classes/cloud_network_metadata_spec.rb index 1cb786f2..241583a7 100644 --- a/spec/classes/cloud_network_metadata_spec.rb +++ b/spec/classes/cloud_network_metadata_spec.rb @@ -37,6 +37,9 @@ describe 'cloud::network::metadata' do debug => true, use_syslog => true, dhcp_lease_duration => '10', + tunnel_types => ['vxlan'], + tenant_network_types => ['vxlan'], + type_drivers => ['gre', 'vlan', 'flat', 'vxlan'], log_facility => 'LOG_LOCAL0' }" end @@ -74,13 +77,13 @@ describe 'cloud::network::metadata' do ) should contain_class('neutron::agents::ovs').with( :enable_tunneling => true, - :tunnel_types => ['gre'], + :tunnel_types => ['vxlan'], :bridge_mappings => ['public:br-pub'], :local_ip => '10.0.1.1' ) should contain_class('neutron::plugins::ml2').with( - :type_drivers => ['gre','vlan','flat'], - :tenant_network_types => ['gre'], + :type_drivers => ['gre', 'vlan', 'flat', 'vxlan'], + :tenant_network_types => ['vxlan'], :mechanism_drivers => ['openvswitch','l2population'], :tunnel_id_ranges => ['1:10000'], :network_vlan_ranges => ['physnet1:1000:2999'], diff --git a/spec/classes/cloud_network_vpn_spec.rb b/spec/classes/cloud_network_vpn_spec.rb index 50796684..c9a9aa9b 100644 --- a/spec/classes/cloud_network_vpn_spec.rb +++ b/spec/classes/cloud_network_vpn_spec.rb @@ -37,6 +37,9 @@ describe 'cloud::network::vpn' do debug => true, use_syslog => true, dhcp_lease_duration => '10', + tunnel_types => ['vxlan'], + tenant_network_types => ['vxlan'], + type_drivers => ['gre', 'vlan', 'flat', 'vxlan'], log_facility => 'LOG_LOCAL0' }" end @@ -61,13 +64,13 @@ describe 'cloud::network::vpn' do ) should contain_class('neutron::agents::ovs').with( :enable_tunneling => true, - :tunnel_types => ['gre'], + :tunnel_types => ['vxlan'], :bridge_mappings => ['public:br-pub'], :local_ip => '10.0.1.1' ) should contain_class('neutron::plugins::ml2').with( - :type_drivers => ['gre','vlan','flat'], - :tenant_network_types => ['gre'], + :type_drivers => ['gre', 'vlan', 'flat', 'vxlan'], + :tenant_network_types => ['vxlan'], :mechanism_drivers => ['openvswitch','l2population'], :tunnel_id_ranges => ['1:10000'], :network_vlan_ranges => ['physnet1:1000:2999'],