puppet-prod/site/profiles/manifests/dns/client.pp
Ben Vincent 19bc2002ee feat: deploy dns for all interfaces
feat: rework profiles::dns::client define

- reworked the profiles::dns::client to use new defaults
- removed static variables

feat: manage secondary interfaces

- define the primary interface for dns
- set primary interface as loopback0 for incus hosts
- add ip_sans for loopback interfaces
- add ssh principals for loopback interfaces
2025-05-11 16:00:20 +10:00

33 lines
913 B
Puppet

# profiles::dns::client
define profiles::dns::client (
Boolean $forward = true,
Boolean $reverse = true,
Integer $order = 10,
String $interface = $facts['networking']['primary'],
Stdlib::Fqdn $hostname = $facts['networking']['hostname'],
Stdlib::Fqdn $domain = $facts['networking']['domain'],
){
$last_octet = regsubst($facts['networking']['interfaces'][$interface]['ip'], '^.*\.', '')
if $forward {
profiles::dns::record { "${title}_A":
value => $facts['networking']['interfaces'][$interface]['ip'],
type => 'A',
record => $hostname,
zone => $domain,
order => $order,
}
}
if $reverse {
profiles::dns::record { "${title}_PTR":
value => "${hostname}.${domain}.",
type => 'PTR',
record => $last_octet,
zone => $facts['arpa'][$interface]['zone'],
order => $order,
}
}
}