exim: allow a host to indicate that it is the master for tracker.d.o
[mirror/dsa-puppet.git] / modules / exim / manifests / init.pp
index 320c7ff..babfa44 100644 (file)
@@ -4,22 +4,23 @@
 # @param is_bugsmx this system handles bugs.debian.org
 # @param is_mailrelay this system is a mailrelay, both in and out, for debian hosts
 # @param is_rtmaster this system handles rt.debian.org
-# @param is_packagesmaster this system handles packagesrt.debian.org
+# @param is_packagesmaster this system handles packages.debian.org
 # @param is_packagesqamaster this system handles packages.qa.debian.org
-# @param smarthost_port the port on which satellites send mail to the smarthost
+# @param is_trackermaster this system handles tracker.debian.org
+# @param mail_port override the default incoming mailport (only applicable for hosts behind an incoming relay)
+# @param smarthost_port the port on which satellites send mail to the smarthost (needs to be the same on both sides)
 class exim (
-  Boolean $use_smarthost = true,
   Optional[String] $smarthost,
+  Boolean $use_smarthost = true,
   Boolean $is_bugsmx = false,
   Boolean $is_mailrelay = false,
   Boolean $is_rtmaster = false,
   Boolean $is_packagesmaster = false,
   Boolean $is_packagesqamaster = false,
+  Boolean $is_trackermaster = false,
   Integer $smarthost_port = 587,
+  Optional[Integer] $mail_port = undef,
 ) {
-  include exim::vdomain::setup
-  include debian_org::mail_incoming_port
-
   if $use_smarthost {
     $heavy = false
 
@@ -28,6 +29,9 @@ class exim (
     }
   } else {
     $heavy = true
+    if $mail_port {
+      fail('Cannot override mail_port in heavy/no-smarthost hosts')
+    }
   }
 
   munin::check { 'ps_exim4': script => 'ps_' }
@@ -42,12 +46,6 @@ class exim (
 
   Package['exim4-daemon-heavy']->Mailalias<| |>
 
-  concat::fragment { 'virtual_domain_template':
-    target  => '/etc/exim4/virtualdomains',
-    content => template('exim/virtualdomains.erb'),
-    order   => '05',
-  }
-
   service { 'exim4':
     ensure  => running,
     require => [
@@ -83,15 +81,25 @@ class exim (
   file { '/etc/mailname':
     content => template('exim/mailname.erb'),
   }
-  file { '/etc/exim4/manualroute':
-    content => template('exim/manualroute.erb')
+
+  concat { '/etc/exim4/virtualdomains': }
+  concat::fragment { 'virtualdomains_header':
+    target  => '/etc/exim4/virtualdomains',
+    content => template('exim/virtualdomains.header.erb'),
+    order   => '00',
   }
+
   file { '/etc/exim4/locals':
     content => template('exim/locals.erb')
   }
-  file { '/etc/exim4/submission-domains':
-    content => template('exim/submission-domains.erb'),
+
+  concat { '/etc/exim4/submission-domains':
+    ensure_newline => true,
+    warn           => @(EOF),
+    ## THIS FILE IS UNDER PUPPET CONTROL. DON'T EDIT IT HERE.
+    | EOF
   }
+
   file { '/etc/exim4/host_blacklist':
     source => 'puppet:///modules/exim/common/host_blacklist',
   }