# profiles::dns::server class profiles::dns::server ( Hash $acls = {}, Hash $zones = {}, Hash $views = {}, Hash $keys = {}, Array $forwarders = ['8.8.8.8', '1.1.1.1'], Boolean $dnssec = true, ){ # if forwarders are empty, set it to undef if $forwarders == [] { $use_forwarders = undef }else{ $use_forwarders = $forwarders } # setup base bind server class { 'bind': forwarders => $use_forwarders, dnssec => $dnssec, version => 'Controlled by Puppet', statistics_port => '8053', } # setup bind_exporter include prometheus::bind_exporter # if keys, import them $keys.each | $name, $data | { bind::key { $name: * => $data, } } # if acls, import them $acls.each | $name, $data | { bind::acl { $name: * => $data, } } # if zones, import them $zones.each | $name, $data | { bind::zone { $name: * => $data, } } # if views, import them $views.each | $name, $data | { bind::view { $name: * => $data, } } }