# @summary Manages DNS autodiscovery records for Stalwart # # @param target_host # FQDN to point DNS records to (defaults to current server) # # @api private class stalwart::dns ( Stdlib::Fqdn $target_host = $facts['networking']['fqdn'], ) { 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 => "${target_host}.", zone => $domain, order => 100, } # Autodiscover record for Outlook/Microsoft clients profiles::dns::record { "autodiscover_${domain}": record => "autodiscover.${domain}", type => 'CNAME', value => "${target_host}.", zone => $domain, order => 101, } # IMAP SRV records profiles::dns::record { "imap_srv_${domain}": record => "_imap._tcp.${domain}", type => 'SRV', value => "10 1 143 ${target_host}.", zone => $domain, order => 102, } profiles::dns::record { "imaps_srv_${domain}": record => "_imaps._tcp.${domain}", type => 'SRV', value => "10 1 993 ${target_host}.", 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 ${target_host}.", zone => $domain, order => 104, } profiles::dns::record { "carddav_srv_${domain}": record => "_carddav._tcp.${domain}", type => 'SRV', value => "10 1 443 ${target_host}.", zone => $domain, order => 105, } } }