From ebc8709130fba49321d89f0010f8a80c8d049d39 Mon Sep 17 00:00:00 2001 From: Emilien Macchi Date: Tue, 18 Feb 2014 19:43:42 +0100 Subject: [PATCH 1/2] network/dhcp: templatize dnsmasq configuration The only way I found to fix the MTU configuration is to use DHCP. To do that, we need to configure Neutron DHCP Agent and create a dedicated file. This file has been introduced as a new template. Close bug #270 Signed-off-by: Emilien Macchi --- manifests/network/dhcp.pp | 15 ++++++++++++++- spec/classes/cloud_network_dhcp_spec.rb | 12 +++++++++++- templates/network/dnsmasq-neutron.conf.erb | 1 + 3 files changed, 26 insertions(+), 2 deletions(-) create mode 100644 templates/network/dnsmasq-neutron.conf.erb diff --git a/manifests/network/dhcp.pp b/manifests/network/dhcp.pp index 365b156d..e891a22c 100644 --- a/manifests/network/dhcp.pp +++ b/manifests/network/dhcp.pp @@ -17,7 +17,8 @@ # class cloud::network::dhcp( - $debug = $os_params::debug + $veth_mtu = $os_params::veth_mtu, + $debug = $os_params::debug ) { include 'cloud::network' @@ -26,4 +27,16 @@ class cloud::network::dhcp( debug => $debug } + neutron_dhcp_agent_config { + 'DEFAULT/dnsmasq_config_file': value => '/etc/neutron/dnsmasq-neutron.conf'; + } + + file { '/etc/neutron/dnsmasq-neutron.conf': + content => template('cloud/network/dnsmasq-neutron.conf.erb'), + owner => 'root', + mode => '0755', + group => 'root', + notify => Service['neutron-dhcp-agent'] + } + } diff --git a/spec/classes/cloud_network_dhcp_spec.rb b/spec/classes/cloud_network_dhcp_spec.rb index b78aed76..49a1a33a 100644 --- a/spec/classes/cloud_network_dhcp_spec.rb +++ b/spec/classes/cloud_network_dhcp_spec.rb @@ -37,7 +37,8 @@ describe 'cloud::network::dhcp' do end let :params do - { :debug => true } + { :veth_mtu => '1400', + :debug => true } end it 'configure neutron common' do @@ -77,6 +78,15 @@ describe 'cloud::network::dhcp' do should contain_class('neutron::agents::dhcp').with( :debug => true ) + + should contain_neutron_dhcp_agent_config('DEFAULT/dnsmasq_config_file').with_value('/etc/neutron/dnsmasq-neutron.conf') + + should contain_file('/etc/neutron/dnsmasq-neutron.conf').with( + :mode => '0755', + :owner => 'root', + :group => 'root' + ) + verify_contents(subject, '/etc/neutron/dnsmasq-neutron.conf', ["dhcp-options-force=26,1400"]) end end diff --git a/templates/network/dnsmasq-neutron.conf.erb b/templates/network/dnsmasq-neutron.conf.erb new file mode 100644 index 00000000..d18d9671 --- /dev/null +++ b/templates/network/dnsmasq-neutron.conf.erb @@ -0,0 +1 @@ +dhcp-options-force=26,<%= @veth_mtu %> From 59587885afdd8140d325650b69a9e189c8c3a166 Mon Sep 17 00:00:00 2001 From: Emilien Macchi Date: Tue, 18 Feb 2014 22:46:21 +0100 Subject: [PATCH 2/2] network: remove veth_param I revert a last patch I did about veth_mtu param. veth_mtu enforces mtu on veths (between br-int and physnets only). It's not useful in our case, where this is the external network which is tagged, so we only need to enforce the MTU within the VM, using DHCP options. Close bug #270 Signed-off-by: Emilien Macchi --- manifests/network.pp | 8 +------- spec/classes/cloud_network_controller_spec.rb | 1 - spec/classes/cloud_network_dhcp_spec.rb | 1 - spec/classes/cloud_network_l3_spec.rb | 1 - spec/classes/cloud_network_lbaas_spec.rb | 1 - spec/classes/cloud_network_metadata_spec.rb | 1 - spec/classes/cloud_network_vpn_spec.rb | 1 - 7 files changed, 1 insertion(+), 13 deletions(-) diff --git a/manifests/network.pp b/manifests/network.pp index 1830e4d7..ef49cc3d 100644 --- a/manifests/network.pp +++ b/manifests/network.pp @@ -55,10 +55,6 @@ # (optional) Syslog facility to receive log lines # Defaults value in params # -# [*veth_mtu*] -# (optional) MTU for VM virtual network cards. -# Defaults value in params -# class cloud::network( $verbose = $os_params::verbose, @@ -70,8 +66,7 @@ class cloud::network( $provider_vlan_ranges = $os_params::provider_vlan_ranges, $provider_bridge_mappings = $os_params::provider_bridge_mappings, $use_syslog = $os_params::neutron_use_syslog, - $log_facility = $os_params::neutron_log_facility, - $veth_mtu = $os_params::veth_mtu + $log_facility = $os_params::neutron_log_facility ) { class { 'neutron': @@ -114,7 +109,6 @@ class cloud::network( 'agent/tunnel_types': value => ['gre']; 'agent/l2_population': value => true; 'agent/polling_interval': value => '2'; - 'agent/veth_mtu': value => $veth_mtu; 'OVS/local_ip': value => $tunnel_eth; 'OVS/enable_tunneling': value => true; 'OVS/integration_bridge': value => 'br-int'; diff --git a/spec/classes/cloud_network_controller_spec.rb b/spec/classes/cloud_network_controller_spec.rb index d192027c..26c5cb06 100644 --- a/spec/classes/cloud_network_controller_spec.rb +++ b/spec/classes/cloud_network_controller_spec.rb @@ -32,7 +32,6 @@ describe 'cloud::network::controller' do verbose => true, debug => true, use_syslog => true, - veth_mtu => '1500', log_facility => 'LOG_LOCAL0' }" end diff --git a/spec/classes/cloud_network_dhcp_spec.rb b/spec/classes/cloud_network_dhcp_spec.rb index 49a1a33a..813cee6c 100644 --- a/spec/classes/cloud_network_dhcp_spec.rb +++ b/spec/classes/cloud_network_dhcp_spec.rb @@ -32,7 +32,6 @@ describe 'cloud::network::dhcp' do verbose => true, debug => true, use_syslog => true, - veth_mtu => '1500', log_facility => 'LOG_LOCAL0' }" end diff --git a/spec/classes/cloud_network_l3_spec.rb b/spec/classes/cloud_network_l3_spec.rb index 96d2a709..d0b0bec9 100644 --- a/spec/classes/cloud_network_l3_spec.rb +++ b/spec/classes/cloud_network_l3_spec.rb @@ -32,7 +32,6 @@ describe 'cloud::network::l3' do verbose => true, debug => true, use_syslog => true, - veth_mtu => '1500', log_facility => 'LOG_LOCAL0' }" end diff --git a/spec/classes/cloud_network_lbaas_spec.rb b/spec/classes/cloud_network_lbaas_spec.rb index 13ef1526..6b1e71c7 100644 --- a/spec/classes/cloud_network_lbaas_spec.rb +++ b/spec/classes/cloud_network_lbaas_spec.rb @@ -32,7 +32,6 @@ describe 'cloud::network::lbaas' do verbose => true, debug => true, use_syslog => true, - veth_mtu => '1500', log_facility => 'LOG_LOCAL0' }" end diff --git a/spec/classes/cloud_network_metadata_spec.rb b/spec/classes/cloud_network_metadata_spec.rb index 4b1a5b78..2274fd7e 100644 --- a/spec/classes/cloud_network_metadata_spec.rb +++ b/spec/classes/cloud_network_metadata_spec.rb @@ -32,7 +32,6 @@ describe 'cloud::network::metadata' do verbose => true, debug => true, use_syslog => true, - veth_mtu => '1500', log_facility => 'LOG_LOCAL0' }" end diff --git a/spec/classes/cloud_network_vpn_spec.rb b/spec/classes/cloud_network_vpn_spec.rb index 6d5f3ad7..3d4dbdfa 100644 --- a/spec/classes/cloud_network_vpn_spec.rb +++ b/spec/classes/cloud_network_vpn_spec.rb @@ -32,7 +32,6 @@ describe 'cloud::network::vpn' do verbose => true, debug => true, use_syslog => true, - veth_mtu => '1500', log_facility => 'LOG_LOCAL0' }" end