diff --git a/manifests/agents/dhcp.pp b/manifests/agents/dhcp.pp index c64b70546..599c2c30f 100644 --- a/manifests/agents/dhcp.pp +++ b/manifests/agents/dhcp.pp @@ -45,11 +45,19 @@ # (optional) List of servers to use as dnsmasq forwarders. # Defaults to $::os_service_default. # +# [*dnsmasq_base_log_dir*] +# (optional) base log dir for dnsmasq logging. +# Defaults to $::os_service_default. +# # [*dnsmasq_local_resolv*] # (optional) Enables the dnsmasq service to provide name resolution for instances # via DNS resolvers on the host running the DHCP agent. # Defaults to $::os_service_default. # +# [*dnsmasq_lease_max*] +# (optional) Limit number of leases to prevent a denial-of-service. +# Defaults to $::os_service_default. +# # [*dnsmasq_enable_addr6_list*] # (optional) Enable dhcp-host entry with list of addresses when port has # multiple IPv6 addresses in the same subnet. @@ -126,7 +134,9 @@ class neutron::agents::dhcp ( $root_helper = 'sudo neutron-rootwrap /etc/neutron/rootwrap.conf', $dnsmasq_config_file = $::os_service_default, $dnsmasq_dns_servers = $::os_service_default, + $dnsmasq_base_log_dir = $::os_service_default, $dnsmasq_local_resolv = $::os_service_default, + $dnsmasq_lease_max = $::os_service_default, $dnsmasq_enable_addr6_list = $::os_service_default, $enable_isolated_metadata = false, $enable_force_metadata = $::os_service_default, @@ -173,7 +183,9 @@ class neutron::agents::dhcp ( 'DEFAULT/dhcp_broadcast_reply': value => $dhcp_broadcast_reply; 'DEFAULT/dnsmasq_config_file': value => $dnsmasq_config_file; 'DEFAULT/dnsmasq_dns_servers': value => join(any2array($dnsmasq_dns_servers), ','); + 'DEFAULT/dnsmasq_base_log_dir': value => $dnsmasq_base_log_dir; 'DEFAULT/dnsmasq_local_resolv': value => $dnsmasq_local_resolv; + 'DEFAULT/dnsmasq_lease_max': value => $dnsmasq_lease_max; 'DEFAULT/dnsmasq_enable_addr6_list': value => $dnsmasq_enable_addr6_list; 'agent/availability_zone': value => $availability_zone; 'agent/report_interval': value => $report_interval; diff --git a/releasenotes/notes/dnsmasq-opts-13586d1973e7cb07.yaml b/releasenotes/notes/dnsmasq-opts-13586d1973e7cb07.yaml new file mode 100644 index 000000000..a8e5572a7 --- /dev/null +++ b/releasenotes/notes/dnsmasq-opts-13586d1973e7cb07.yaml @@ -0,0 +1,8 @@ +--- +features: + - | + The following parameters have been added to the ``neutron::agent::dhcp`` + class. + + - ``dnsmasq_base_log_dir`` + - ``dnsmasq_lease_max`` diff --git a/spec/classes/neutron_agents_dhcp_spec.rb b/spec/classes/neutron_agents_dhcp_spec.rb index 8aec324b5..6261f8160 100644 --- a/spec/classes/neutron_agents_dhcp_spec.rb +++ b/spec/classes/neutron_agents_dhcp_spec.rb @@ -181,45 +181,31 @@ describe 'neutron::agents::dhcp' do end end - context 'when enabling dhcp-host entry with list of addresses' do + context 'with dnsmasq parameters' do before :each do - params.merge!(:dnsmasq_enable_addr6_list => true) + params.merge!({ + :dnsmasq_config_file => '/foo', + :dnsmasq_dns_servers => ['192.0.2.11', '192.0.2.12'], + :dnsmasq_base_log_dir => '/var/log/neutron', + :dnsmasq_local_resolv => true, + :dnsmasq_lease_max => 16777216, + :dnsmasq_enable_addr6_list => false, + }) end - it 'should enabling dhcp-host entry with list of addresses' do - should contain_neutron_dhcp_agent_config('DEFAULT/dnsmasq_enable_addr6_list').with_value('true'); - end - end - context 'with dnsmasq_config_file specified' do - before do - params.merge!( - :dnsmasq_config_file => '/foo' - ) - end - it 'configures dnsmasq_config_file' do - should contain_neutron_dhcp_agent_config('DEFAULT/dnsmasq_config_file').with_value(params[:dnsmasq_config_file]) - end - end - - context 'enable advertisement of the DNS resolver on the host.' do - before do - params.merge!( - :dnsmasq_local_resolv => true - ) - end - it 'configures dnsmasq_local_resolv' do - should contain_neutron_dhcp_agent_config('DEFAULT/dnsmasq_local_resolv').with_value(params[:dnsmasq_local_resolv]) - end - end - - context 'with dnsmasq_dns_servers set' do - before do - params.merge!( - :dnsmasq_dns_servers => ['1.2.3.4','5.6.7.8'] - ) - end - it 'should set dnsmasq_dns_servers' do - should contain_neutron_dhcp_agent_config('DEFAULT/dnsmasq_dns_servers').with_value(params[:dnsmasq_dns_servers].join(',')) + it 'should configure the dnsmasq parameters' do + should contain_neutron_dhcp_agent_config('DEFAULT/dnsmasq_config_file')\ + .with_value(params[:dnsmasq_config_file]) + should contain_neutron_dhcp_agent_config('DEFAULT/dnsmasq_dns_servers')\ + .with_value(params[:dnsmasq_dns_servers].join(',')) + should contain_neutron_dhcp_agent_config('DEFAULT/dnsmasq_base_log_dir')\ + .with_value(params[:dnsmasq_base_log_dir]) + should contain_neutron_dhcp_agent_config('DEFAULT/dnsmasq_local_resolv')\ + .with_value(params[:dnsmasq_local_resolv]) + should contain_neutron_dhcp_agent_config('DEFAULT/dnsmasq_lease_max')\ + .with_value(params[:dnsmasq_lease_max]) + should contain_neutron_dhcp_agent_config('DEFAULT/dnsmasq_enable_addr6_list')\ + .with_value(params[:dnsmasq_enable_addr6_list]); end end end