From e3a932d02507e4a8f0e6b816669d3eea52813874 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Harald=20Jens=C3=A5s?= Date: Thu, 27 Feb 2020 20:32:27 +0100 Subject: [PATCH] Add 'dnsmasq_enable_addr6_list' option Add support to control the dhcp agent configuration option 'dnsmasq_enable_addr6_list'. Related-Bug: #1861032 Depends-On: https://review.opendev.org/704436 Change-Id: I32ee1e9dac3aa97add161aa17c2e87584b6c17a2 --- manifests/agents/dhcp.pp | 31 ++++++++++++------- ...sq_enable_addr6_list-2ead22fb05f5da5f.yaml | 5 +++ spec/classes/neutron_agents_dhcp_spec.rb | 10 ++++++ 3 files changed, 34 insertions(+), 12 deletions(-) create mode 100644 releasenotes/notes/add_dnsmasq_enable_addr6_list-2ead22fb05f5da5f.yaml diff --git a/manifests/agents/dhcp.pp b/manifests/agents/dhcp.pp index 1dd6b019e..d876b0f56 100644 --- a/manifests/agents/dhcp.pp +++ b/manifests/agents/dhcp.pp @@ -50,6 +50,11 @@ # via DNS resolvers on the host running the DHCP agent. # 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. +# Defaults to $::os_service_default. +# # [*enable_isolated_metadata*] # (optional) enable metadata support on isolated networks. # Defaults to false. @@ -112,6 +117,7 @@ class neutron::agents::dhcp ( $dnsmasq_config_file = $::os_service_default, $dnsmasq_dns_servers = $::os_service_default, $dnsmasq_local_resolv = $::os_service_default, + $dnsmasq_enable_addr6_list = $::os_service_default, $enable_isolated_metadata = false, $enable_force_metadata = $::os_service_default, $enable_metadata_network = false, @@ -146,18 +152,19 @@ class neutron::agents::dhcp ( # This only lists config specific to the agent. neutron.conf supplies # the rest. neutron_dhcp_agent_config { - 'DEFAULT/debug': value => $debug; - 'DEFAULT/state_path': value => $state_path; - 'DEFAULT/resync_interval': value => $resync_interval; - 'DEFAULT/interface_driver': value => $interface_driver; - 'DEFAULT/dhcp_driver': value => $dhcp_driver; - 'DEFAULT/root_helper': value => $root_helper; - '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_local_resolv': value => $dnsmasq_local_resolv; - 'DEFAULT/ovs_integration_bridge': value => $ovs_integration_bridge; - 'agent/availability_zone': value => $availability_zone; + 'DEFAULT/debug': value => $debug; + 'DEFAULT/state_path': value => $state_path; + 'DEFAULT/resync_interval': value => $resync_interval; + 'DEFAULT/interface_driver': value => $interface_driver; + 'DEFAULT/dhcp_driver': value => $dhcp_driver; + 'DEFAULT/root_helper': value => $root_helper; + '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_local_resolv': value => $dnsmasq_local_resolv; + 'DEFAULT/dnsmasq_enable_addr6_list': value => $dnsmasq_enable_addr6_list; + 'DEFAULT/ovs_integration_bridge': value => $ovs_integration_bridge; + 'agent/availability_zone': value => $availability_zone; } if $ovsdb_connection =~ /^ssl:/ { diff --git a/releasenotes/notes/add_dnsmasq_enable_addr6_list-2ead22fb05f5da5f.yaml b/releasenotes/notes/add_dnsmasq_enable_addr6_list-2ead22fb05f5da5f.yaml new file mode 100644 index 000000000..500c4ac36 --- /dev/null +++ b/releasenotes/notes/add_dnsmasq_enable_addr6_list-2ead22fb05f5da5f.yaml @@ -0,0 +1,5 @@ +--- +features: + - | + Add 'dnsmasq_enable_addr6_list' option support to dhcp agent settings. + (See bug: `#1861032 `_) diff --git a/spec/classes/neutron_agents_dhcp_spec.rb b/spec/classes/neutron_agents_dhcp_spec.rb index 9704b9662..6c1a56b00 100644 --- a/spec/classes/neutron_agents_dhcp_spec.rb +++ b/spec/classes/neutron_agents_dhcp_spec.rb @@ -43,6 +43,7 @@ describe 'neutron::agents::dhcp' do should contain_neutron_dhcp_agent_config('DEFAULT/dhcp_broadcast_reply').with_value(''); should contain_neutron_dhcp_agent_config('DEFAULT/ovs_integration_bridge').with_value(''); should contain_neutron_dhcp_agent_config('DEFAULT/dnsmasq_local_resolv').with_value(''); + should contain_neutron_dhcp_agent_config('DEFAULT/dnsmasq_enable_addr6_list').with_value(''); should contain_neutron_dhcp_agent_config('agent/availability_zone').with_value(''); should contain_neutron_dhcp_agent_config('OVS/ovsdb_connection').with_value(''); should contain_neutron_dhcp_agent_config('OVS/ssl_key_file').with_value(''); @@ -177,6 +178,15 @@ describe 'neutron::agents::dhcp' do should raise_error(Puppet::Error) end end + + context 'when enabling dhcp-host entry with list of addresses' do + before :each do + params.merge!(:dnsmasq_enable_addr6_list => true) + 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 end shared_examples 'neutron dhcp agent with dnsmasq_config_file specified' do