From b2b8cf72a891da3e22e5361e8706d33bdffd6198 Mon Sep 17 00:00:00 2001 From: Numan Siddique Date: Fri, 1 Jun 2018 15:35:36 +0530 Subject: [PATCH] ovn: Add dns_servers configuration support networking-ovn optionally expects list of dns server to be defined in the config -'ovn/dns_servers'. These will be included in the 'dns_server' DHCP option field when the VMs send DHCP request if the subnet's dns_nameservers field is not defined by the user. Change-Id: I353ac905069ecc945720df2b9e3051989238a02a Partial-bug: #1774052 --- manifests/plugins/ml2/ovn.pp | 8 ++++++++ ...vn-set-dns-servers-config-option-1ffa7a252df8731a.yaml | 6 ++++++ spec/classes/neutron_plugins_ml2_ovn_spec.rb | 2 ++ 3 files changed, 16 insertions(+) create mode 100644 releasenotes/notes/ovn-set-dns-servers-config-option-1ffa7a252df8731a.yaml diff --git a/manifests/plugins/ml2/ovn.pp b/manifests/plugins/ml2/ovn.pp index 36568d9bf..f5dc6736c 100644 --- a/manifests/plugins/ml2/ovn.pp +++ b/manifests/plugins/ml2/ovn.pp @@ -52,6 +52,12 @@ # (optional) Whether to enable DVR. # Type: boolean # Defaults to $::os_service_default +# +# [*dns_servers*] +# (optional) List of dns servers which will be as forwarders +# if a subnet's dns_nameservers is empty. +# Type: List +# Defaults to $::os_service_default class neutron::plugins::ml2::ovn( $ovn_nb_connection = $::os_service_default, @@ -63,6 +69,7 @@ class neutron::plugins::ml2::ovn( $vif_type = $::os_service_default, $ovn_metadata_enabled = $::os_service_default, $dvr_enabled = $::os_service_default, + $dns_servers = $::os_service_default, ) { include ::neutron::deps @@ -96,5 +103,6 @@ class neutron::plugins::ml2::ovn( 'ovn/vif_type' : value => $vif_type; 'ovn/ovn_metadata_enabled' : value => $ovn_metadata_enabled; 'ovn/enable_distributed_floating_ip' : value => $dvr_enabled; + 'ovn/dns_servers' : value => join(any2array($dns_servers), ','); } } diff --git a/releasenotes/notes/ovn-set-dns-servers-config-option-1ffa7a252df8731a.yaml b/releasenotes/notes/ovn-set-dns-servers-config-option-1ffa7a252df8731a.yaml new file mode 100644 index 000000000..c7ed4e5ac --- /dev/null +++ b/releasenotes/notes/ovn-set-dns-servers-config-option-1ffa7a252df8731a.yaml @@ -0,0 +1,6 @@ +--- +features: + - Provides the option to define a set of DNS servers which will be + configured in the 'ovn' section of etc/neutron/plugins/ml2_conf.ini. + These DNS servers will be used as DNS forwarders for the VMs if a neutron + subnet is not defined with 'dns_nameservers' option. diff --git a/spec/classes/neutron_plugins_ml2_ovn_spec.rb b/spec/classes/neutron_plugins_ml2_ovn_spec.rb index e8f9841e1..40fd64cbd 100644 --- a/spec/classes/neutron_plugins_ml2_ovn_spec.rb +++ b/spec/classes/neutron_plugins_ml2_ovn_spec.rb @@ -19,6 +19,7 @@ describe 'neutron::plugins::ml2::ovn' do :ovn_l3_mode => true, :vif_type => 'ovs', :dvr_enabled => false, + :dns_servers => ['8.8.8.8', '10.10.10.10'], } end @@ -46,6 +47,7 @@ describe 'neutron::plugins::ml2::ovn' do is_expected.to contain_neutron_plugin_ml2('ovn/ovn_l3_mode').with_value(params[:ovn_l3_mode]) is_expected.to contain_neutron_plugin_ml2('ovn/vif_type').with_value(params[:vif_type]) is_expected.to contain_neutron_plugin_ml2('ovn/enable_distributed_floating_ip').with_value(params[:dvr_enabled]) + is_expected.to contain_neutron_plugin_ml2('ovn/dns_servers').with_value(params[:dns_servers].join(',')) end end