diff --git a/.fixtures.yml b/.fixtures.yml index 6bb634ed..e02efc0a 100644 --- a/.fixtures.yml +++ b/.fixtures.yml @@ -84,5 +84,8 @@ fixtures: 'boolean': repo: 'git://github.com/enovance/puppet-boolean.git' ref: '157011a4eaa27f1202a9d94335ee4876b26d377e' + 'kmod': + repo: 'git://github.com/enovance/puppet-kmod.git' + ref: 'accc40093e6f8ee9cc472e9eb6ba3bab4bad3a1f' symlinks: 'cloud': '#{source_dir}' diff --git a/Puppetfile b/Puppetfile index 25305441..51fac805 100644 --- a/Puppetfile +++ b/Puppetfile @@ -81,6 +81,9 @@ mod 'inifile', mod 'keepalived', :git => 'git://github.com/enovance/puppet-module-keepalived.git', :ref => 'eb345b6d3b25106cbe166028f2b8dd9974a10230' +mod 'keepalived', + :git => 'git://github.com/enovance/puppet-kmod.git', + :ref => 'accc40093e6f8ee9cc472e9eb6ba3bab4bad3a1f' mod 'kwalify', :git => 'git://github.com/puppetlabs/puppetlabs-kwalify.git', :ref => 'e0079c6485d7cbfc846d956e650913e1b3ccfb6d' diff --git a/manifests/network.pp b/manifests/network.pp index 861e71f9..174bf757 100644 --- a/manifests/network.pp +++ b/manifests/network.pp @@ -81,9 +81,15 @@ class cloud::network( } if $::osfamily == 'RedHat' { - exec { '/sbin/modprobe ip_gre': - unless => '/bin/grep -q "^ip_gre " "/proc/modules"' - } + $gre_module_name = 'ip_gre' + } else { + $gre_module_name = 'gre' + } + + kmod::generic {'install_gre': + type => 'install', + module => $gre_module_name, + file => '/etc/modprobe.d/neutron.conf' } class { 'neutron': diff --git a/spec/classes/cloud_network_controller_spec.rb b/spec/classes/cloud_network_controller_spec.rb index d4138dd3..714f9b98 100644 --- a/spec/classes/cloud_network_controller_spec.rb +++ b/spec/classes/cloud_network_controller_spec.rb @@ -78,6 +78,11 @@ describe 'cloud::network::controller' do :network_vlan_ranges => ['physnet1:1000:2999'], :enable_security_group => 'neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver' ) + should contain_kmod__generic('install_gre').with( + :type => 'install', + :module => platform_params[:gre_module_name], + :file => '/etc/modprobe.d/neutron.conf' + ) end it 'configure neutron server' do @@ -109,6 +114,10 @@ describe 'cloud::network::controller' do :processorcount => '2' } end + let :platform_params do + { :gre_module_name => 'gre' } + end + it_configures 'openstack network controller' end @@ -118,6 +127,10 @@ describe 'cloud::network::controller' do :processorcount => '2' } end + let :platform_params do + { :gre_module_name => 'ip_gre' } + end + it_configures 'openstack network controller' end diff --git a/spec/classes/cloud_network_dhcp_spec.rb b/spec/classes/cloud_network_dhcp_spec.rb index e04dc2bd..a640fe77 100644 --- a/spec/classes/cloud_network_dhcp_spec.rb +++ b/spec/classes/cloud_network_dhcp_spec.rb @@ -73,6 +73,11 @@ describe 'cloud::network::dhcp' do :network_vlan_ranges => ['physnet1:1000:2999'], :enable_security_group => 'neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver' ) + should contain_kmod__generic('install_gre').with( + :type => 'install', + :module => platform_params[:gre_module_name], + :file => '/etc/modprobe.d/neutron.conf' + ) end it 'configure neutron dhcp' do @@ -97,6 +102,10 @@ describe 'cloud::network::dhcp' do { :osfamily => 'Debian' } end + let :platform_params do + { :gre_module_name => 'gre' } + end + it_configures 'openstack network dhcp' end @@ -105,6 +114,10 @@ describe 'cloud::network::dhcp' do { :osfamily => 'RedHat' } end + let :platform_params do + { :gre_module_name => 'ip_gre' } + end + it_configures 'openstack network dhcp' end diff --git a/spec/classes/cloud_network_l3_spec.rb b/spec/classes/cloud_network_l3_spec.rb index 62539055..98510ebd 100644 --- a/spec/classes/cloud_network_l3_spec.rb +++ b/spec/classes/cloud_network_l3_spec.rb @@ -73,6 +73,11 @@ describe 'cloud::network::l3' do :network_vlan_ranges => ['physnet1:1000:2999'], :enable_security_group => 'neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver' ) + should contain_kmod__generic('install_gre').with( + :type => 'install', + :module => platform_params[:gre_module_name], + :file => '/etc/modprobe.d/neutron.conf' + ) end it 'configure neutron l3' do @@ -93,6 +98,10 @@ describe 'cloud::network::l3' do { :osfamily => 'Debian' } end + let :platform_params do + { :gre_module_name => 'gre' } + end + it_configures 'openstack network l3' end @@ -101,6 +110,10 @@ describe 'cloud::network::l3' do { :osfamily => 'RedHat' } end + let :platform_params do + { :gre_module_name => 'ip_gre' } + end + it_configures 'openstack network l3' end diff --git a/spec/classes/cloud_network_lbaas_spec.rb b/spec/classes/cloud_network_lbaas_spec.rb index b89a9def..96b0af96 100644 --- a/spec/classes/cloud_network_lbaas_spec.rb +++ b/spec/classes/cloud_network_lbaas_spec.rb @@ -73,6 +73,11 @@ describe 'cloud::network::lbaas' do :network_vlan_ranges => ['physnet1:1000:2999'], :enable_security_group => 'neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver' ) + should contain_kmod__generic('install_gre').with( + :type => 'install', + :module => platform_params[:gre_module_name], + :file => '/etc/modprobe.d/neutron.conf' + ) end it 'configure neutron lbaas' do @@ -114,6 +119,10 @@ describe 'cloud::network::lbaas' do { :osfamily => 'Debian' } end + let :platform_params do + { :gre_module_name => 'gre' } + end + it_configures 'openstack network lbaas' end @@ -122,6 +131,10 @@ describe 'cloud::network::lbaas' do { :osfamily => 'RedHat' } end + let :platform_params do + { :gre_module_name => 'ip_gre' } + end + it_configures 'openstack network lbaas' end diff --git a/spec/classes/cloud_network_metadata_spec.rb b/spec/classes/cloud_network_metadata_spec.rb index 4a0b68ed..f1fe7124 100644 --- a/spec/classes/cloud_network_metadata_spec.rb +++ b/spec/classes/cloud_network_metadata_spec.rb @@ -80,6 +80,11 @@ describe 'cloud::network::metadata' do :network_vlan_ranges => ['physnet1:1000:2999'], :enable_security_group => 'neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver' ) + should contain_kmod__generic('install_gre').with( + :type => 'install', + :module => platform_params[:gre_module_name], + :file => '/etc/modprobe.d/neutron.conf' + ) end it 'configure neutron metadata' do @@ -100,6 +105,10 @@ describe 'cloud::network::metadata' do { :osfamily => 'Debian' } end + let :platform_params do + { :gre_module_name => 'gre' } + end + it_configures 'openstack network metadata' end @@ -108,6 +117,10 @@ describe 'cloud::network::metadata' do { :osfamily => 'RedHat' } end + let :platform_params do + { :gre_module_name => 'ip_gre' } + end + it_configures 'openstack network metadata' end diff --git a/spec/classes/cloud_network_vpn_spec.rb b/spec/classes/cloud_network_vpn_spec.rb index 72c66186..5c013d62 100644 --- a/spec/classes/cloud_network_vpn_spec.rb +++ b/spec/classes/cloud_network_vpn_spec.rb @@ -68,6 +68,11 @@ describe 'cloud::network::vpn' do :network_vlan_ranges => ['physnet1:1000:2999'], :enable_security_group => 'neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver' ) + should contain_kmod__generic('install_gre').with( + :type => 'install', + :module => platform_params[:gre_module_name], + :file => '/etc/modprobe.d/neutron.conf' + ) end it 'configure neutron vpnaas' do @@ -80,6 +85,10 @@ describe 'cloud::network::vpn' do { :osfamily => 'Debian' } end + let :platform_params do + { :gre_module_name => 'gre' } + end + it_configures 'openstack network vpnaas' end @@ -88,6 +97,10 @@ describe 'cloud::network::vpn' do { :osfamily => 'RedHat' } end + let :platform_params do + { :gre_module_name => 'ip_gre' } + end + it_configures 'openstack network vpnaas' end