puppet-prod/modules/stalwart/manifests/dns.pp
Ben Vincent 87758cc944 feat: create stalwart module
- add stalwart module
- add psql database on the shared patroni instance
2025-11-02 22:19:54 +11:00

61 lines
1.7 KiB
Puppet

# @summary Manages DNS autodiscovery records for Stalwart
#
# @api private
class stalwart::dns {
assert_private()
# Create autodiscovery DNS records for each domain
$stalwart::domains.each |$domain| {
# Autoconfig record for Thunderbird/Mozilla clients
profiles::dns::record { "autoconfig_${domain}":
record => "autoconfig.${domain}",
type => 'CNAME',
value => "${facts['networking']['fqdn']}.",
zone => $domain,
order => 100,
}
# Autodiscover record for Outlook/Microsoft clients
profiles::dns::record { "autodiscover_${domain}":
record => "autodiscover.${domain}",
type => 'CNAME',
value => "${facts['networking']['fqdn']}.",
zone => $domain,
order => 101,
}
# IMAP SRV records
profiles::dns::record { "imap_srv_${domain}":
record => "_imap._tcp.${domain}",
type => 'SRV',
value => "10 1 143 ${facts['networking']['fqdn']}.",
zone => $domain,
order => 102,
}
profiles::dns::record { "imaps_srv_${domain}":
record => "_imaps._tcp.${domain}",
type => 'SRV',
value => "10 1 993 ${facts['networking']['fqdn']}.",
zone => $domain,
order => 103,
}
# CalDAV and CardDAV SRV records
profiles::dns::record { "caldav_srv_${domain}":
record => "_caldav._tcp.${domain}",
type => 'SRV',
value => "10 1 443 ${facts['networking']['fqdn']}.",
zone => $domain,
order => 104,
}
profiles::dns::record { "carddav_srv_${domain}":
record => "_carddav._tcp.${domain}",
type => 'SRV',
value => "10 1 443 ${facts['networking']['fqdn']}.",
zone => $domain,
order => 105,
}
}
}