From c3ac2d9559dbdb51c21567b97478749c6f512fbf Mon Sep 17 00:00:00 2001 From: Takashi Kajinami Date: Sun, 9 Feb 2025 12:14:15 +0900 Subject: [PATCH] Add parameter to control listen-on ... so that both listen-on and listen-on-v6 can be managed by the native parameters. --- manifests/init.pp | 3 +++ spec/classes/dns_init_spec.rb | 8 ++++++++ templates/options.conf.erb | 3 +++ 3 files changed, 14 insertions(+) diff --git a/manifests/init.pp b/manifests/init.pp index bc2b8db..c30470d 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -43,6 +43,8 @@ # The forward option # @param forwarders # The forwarders option +# @param listen_on +# The listen-on option # @param listen_on_v6 # The listen-on-v6 option # @param recursion @@ -159,6 +161,7 @@ Variant[Enum['unmanaged'], Stdlib::Absolutepath] $defaultzonepath = $dns::params::defaultzonepath, Optional[Enum['only', 'first']] $forward = undef, Array[Dns::Forwarder] $forwarders = [], + Optional[String] $listen_on = undef, Variant[String, Boolean] $listen_on_v6 = 'any', Enum['yes', 'no'] $recursion = 'yes', Array[String] $allow_recursion = ['localnets', 'localhost'], diff --git a/spec/classes/dns_init_spec.rb b/spec/classes/dns_init_spec.rb index 7b84744..7074922 100644 --- a/spec/classes/dns_init_spec.rb +++ b/spec/classes/dns_init_spec.rb @@ -250,6 +250,14 @@ end end + describe 'with ipv4 disabled' do + let(:params) { {:listen_on => 'none'} } + + it { verify_concat_fragment_contents(catalogue, 'options.conf+10-main.dns', [ + 'listen-on { none; };', + ])} + end + describe 'with ipv6 disabled' do let(:params) { {:listen_on_v6 => 'none'} } diff --git a/templates/options.conf.erb b/templates/options.conf.erb index 97d1764..f7fc414 100644 --- a/templates/options.conf.erb +++ b/templates/options.conf.erb @@ -18,6 +18,9 @@ empty-zones-enable <%= scope.lookupvar('::dns::empty_zones_enable') %>; <% unless [nil, :undefined, :undef, ''].include?(scope.lookupvar('::dns::dns_notify')) -%> notify <%= scope.lookupvar('::dns::dns_notify') %>; <% end -%> +<% unless [nil, :undefined, :undef, ''].include?(scope.lookupvar('::dns::listen_on')) -%> +listen-on { <%= scope.lookupvar('::dns::listen_on') %>; }; +<% end -%> <% unless [false, nil, :undefined, :undef, ''].include?(scope.lookupvar('::dns::listen_on_v6')) -%> listen-on-v6 { <%= scope.lookupvar('::dns::listen_on_v6') %>; }; <% end -%>