mm_domains: 'lists.openstack.org:lists.zuul-ci.org:lists.airshipit.org:lists.starlingx.io:lists.opendev.org'
exim_local_domains: "@:{{ mm_domains }}"
exim_enable_spf: true
exim_aliases:
  root: "{{ ','.join(listadmins|default([])) }}"
  interop-wg: openstack-discuss
  openstack: openstack-discuss
  openstack-dev: openstack-discuss
  openstack-infra: openstack-discuss
  openstack-operators: openstack-discuss
  openstack-security: openstack-discuss
  openstack-sigs: openstack-discuss
  openstack-tc: openstack-discuss
  user-committee: openstack-discuss
  airship-discuss-owner: spam
  ambassadors-owner: spam
  community-owner: spam
  edge-computing-owner: spam
  foundation-board-confidential-owner: spam
  foundation-board-owner: spam
  foundation-owner: spam
  legal-discuss-owner: spam
  mailman-owner: spam
  marketing-owner: spam
  openstack-announce-owner: spam
  openstack-docs-owner: spam
  openstack-fr-owner: spam
  openstack-i18n-owner: spam
  openstack-infra-owner: spam
  openstack-ko-owner: spam
  openstack-qa-owner: spam
  openstack-vi-owner: spam
  product-wg-owner: spam
  superuser-owner: spam
  user-committee-owner: spam
  spam: ':fail: delivery temporarily disabled due to ongoing spam flood'
exim_routers:
  - mailman_verp_router: |
      {% raw -%}
      driver = dnslookup
      condition = ${if or{{eq{$sender_host_address}{127.0.0.1}}\
                              {eq{$sender_host_address}{::1}}}{yes}{no}}
      {% endraw %}
      domains = !+local_domains
      ignore_target_hosts = <; 0.0.0.0; \
                                        64.94.110.11; \
                                        127.0.0.0/8; \
                                        ::1/128;fe80::/10;fe \
                                        c0::/10;ff00::/8
      senders = "*-bounces@*"
      transport = mailman_verp_smtp
  - dnslookup: '{{ exim_dnslookup_router }}'
  - system_aliases: '{{ exim_system_aliases_router }}'
  - localuser: '{{ exim_localuser_router }}'
  - mailman_copy: |
      driver = accept
      domains = lists.openstack.org
      local_parts = openstack-discuss
      transport = local_copy
      unseen
  - mailman_router: |
      driver = accept
      domains = {{ mm_domains }}
      local_part_suffix = -admin     : \
                                    -bounces   : -bounces+* : \
                                    -confirm   : -confirm+* : \
                                    -join      : -leave     : \
                                    -owner     : -request   : \
                                    -subscribe : -unsubscribe
      local_part_suffix_optional
      require_files = ${lookup{${lc::$domain}}lsearch{/etc/mailman/sites}}/lists/${lc::$local_part}/config.pck
      transport = mailman_transport
exim_transports:
  - local_copy: |
      driver = appendfile
      file = /var/mail/$local_part
      group = mail
      mode = 0660
  - mailman_transport: |
      driver = pipe
      command = /var/lib/mailman/mail/mailman \
                              '${if def:local_part_suffix \
                                     {${sg{$local_part_suffix}{-(\\w+)(\\+.*)?}{\$1}}} \
                                     {post}}' \
                              $local_part
      current_directory = /var/lib/mailman
      environment = HOST=${lc:$domain}
      group = list
      home_directory = /var/lib/mailman
      user = list
  - mailman_verp_smtp: |
      driver = smtp
      headers_add = Errors-To: ${return_path}
      headers_remove = Errors-To
      max_rcpt = 1
      return_path = ${local_part:$return_path}+$local_part=$domain@${domain:$return_path}
mailman_multihost: true
mailman_sites:
  - name: airship
    listdomain: lists.airshipit.org
    install_languages: ['en']
    lists:
      - name: mailman
        description: 'The mailman site list'
        admin: 'nobody@openstack.org'
        password: "{{ mailman_list_password }}"
      - name: airship-announce
        description: 'Announcements of Airship releases and other important information.'
        admin: 'jonathan@openstack.org'
        password: "{{ mailman_list_password }}"
      - name: airship-discuss
        description: 'Discussion of Airship usage and development.'
        admin: 'jonathan@openstack.org'
        password: "{{ mailman_list_password }}"
      - name: airship-job-failures
        description: 'Notification messages for failures from CICD jobs.'
        admin: 'roman.gorshunov@att.com'
        password: "{{ mailman_list_password }}"
      - name: airship-security
        description: 'Public Airship security advisories.'
        admin: 'andrew.walters@att.com'
        password: "{{ mailman_list_password }}"
      - name: airship-embargo-notice
        description: 'Embargoed security vulnerability announcements for Airship consumers.'
        admin: 'andrew.walters@att.com'
        password: "{{ mailman_list_password }}"
  - name: opendev
    listdomain: lists.opendev.org
    install_languages: ['en']
    lists:
      - name: mailman
        description: 'The mailman site list'
        admin: 'nobody@openstack.org'
        password: "{{ mailman_list_password }}"
      - name: rust-vmm
        description: 'Collaborating on Rust-based virtual machine monitors.'
        admin: 'claire@openstack.org'
        password: "{{ mailman_list_password }}"
      - name: rustyk8s
        description: 'Collaborating on Rust-based Kubernetes API.'
        admin: 'allison@lohutok.net'
        password: "{{ mailman_list_password }}"
      - name: nbmp-discuss
        description: 'Collaborating on Network Based Media Processing related platform and infrastructure systems usage and development.'
        admin: 'ildiko@openstack.org'
        password: "{{ mailman_list_password }}"
      - name: service-announce
        description: 'Announcement list for OpenDev services.'
        admin: 'cboylan@sapwetik.org'
        password: "{{ mailman_list_password }}"
      - name: service-discuss
        description: 'Discussion list for OpenDev services.'
        admin: 'cboylan@sapwetik.org'
        password: "{{ mailman_list_password }}"
      - name: service-incident
        description: 'Private list for OpenDev incident coordination.'
        admin: 'cboylan@sapwetik.org'
        password: "{{ mailman_list_password }}"
      - name: openinfralabs
        description: 'Discussion of the OpenInfra Labs academic and research resource sharing effort'
        admin: 'mnaser@vexxhost.com'
        password: "{{ mailman_list_password }}"
      - name: floss-mooc
        description: 'Discussions & Coordination around the FLOSS MOOC being collaboratively developed here: https://gitlab.com/mooc-floss/mooc-floss'
        admin: 'knelson@openinfra.dev'
        password: "{{ mailman_list_password }}"
  - name: openstack
    listdomain: lists.openstack.org
    install_languages: ['de', 'fr', 'it', 'ko', 'ru', 'vi', 'zh_TW']
    lists:
      - name: mailman
        description: 'The mailman site list'
        admin: 'nobody@openstack.org'
        password: "{{ mailman_list_password }}"
      - name: openstack-es
        description: 'Lista de correo acerca de OpenStack en español'
        admin: 'flavio@redhat.com'
        password: "{{ mailman_list_password }}"
      - name: openstack-fr
        description: 'List of the OpenStack french user group'
        admin: 'erwan@erwan.com'
        password: "{{ mailman_list_password }}"
      - name: openstack-de
        description: 'List for German-speaking OpenStack users'
        admin: 'christian@berendt.io'
        password: "{{ mailman_list_password }}"
      - name: openstack-i18n
        description: 'List of the OpenStack Internationalization team.'
        admin: 'guoyingc@cn.ibm.com'
        password: "{{ mailman_list_password }}"
      - name: openstack-ir
        description: 'OpenStack IRAN Community Discussions in Persian/Farsi'
        admin: 'Roozbeh.Shafiee@Gmail.Com'
        password: "{{ mailman_list_password }}"
      - name: openstack-it
        description: 'Discussioni su OpenStack in italiano'
        admin: 'stefano@openstack.org'
        password: "{{ mailman_list_password }}"
      - name: openstack-el
        description: 'List of the OpenStack Greek User Group'
        admin: 'aparathyras@stackmasters.eu'
        password: "{{ mailman_list_password }}"
      - name: openstack-travel-committee
        description: 'Private discussions for the OpenStack Travel Program Committee for Hong Kong Summit 2013.'
        admin: 'communitymngr@openstack.org'
        password: "{{ mailman_list_password }}"
      - name: openstack-personas
        description: 'A group of designers, researchers, developers, writers and users that are creating a set of personas for OpenStack that are intended to help drive development around the needs of our users.'
        admin: 'pieter.c.kruithof-jr@hp.com'
        password: "{{ mailman_list_password }}"
      - name: openstack-vi
        description: 'Discussions in Vietnamese - please add Vietnamese translation here'
        admin: 'hang.tran@dtt.vn'
        password: "{{ mailman_list_password }}"
      - name: openstack-tw
        description: 'OpenStack Taiwan User Group 臺灣使用者郵件群組)'
        admin: 'macjacktw@hotmail.com'
        password: "{{ mailman_list_password }}"
      - name: openstack-ko
        description: 'OpenStack Korea Community Discussions in Korean (오픈스택 한국 커뮤니티 메일링리스트)'
        admin: 'ianyrchoi@gmail.com'
        password: "{{ mailman_list_password }}"
      - name: openstack-ru
        description: 'Рассылка для обсуждения OpenStack на русском'
        admin: 'ilyaalekseyev@acm.org'
        password: "{{ mailman_list_password }}"
      - name: openstack-zh
        description: 'OpenStack社区中文讨论群组'
        admin: 'yeluaiesec@gmail.com'
        password: "{{ mailman_list_password }}"
      - name: nov-2013-track-chairs
        description: 'Coordination of tracks at OpenStack Summit April 2013'
        admin: 'claire@openstack.org'
        password: "{{ mailman_list_password }}"
      - name: openstack-track-chairs
        description: 'Coordination of tracks at OpenStack Summits'
        admin: 'claire@openstack.org'
        password: "{{ mailman_list_password }}"
      - name: summitsponsors
        description: 'Coordination among OpenStack Summit event sponsors'
        admin: 'claire@openstack.org'
        password: "{{ mailman_list_password }}"
      - name: openstack-sos
        description: 'Coordination of activities for Significant Others at Summits'
        admin: 'dms@danplanet.com'
        password: "{{ mailman_list_password }}"
      - name: defcore-committee
        description: 'Discussions of the OpenStack Foundation Core Definition Committee'
        admin: 'josh@openstack.org'
        password: "{{ mailman_list_password }}"
      - name: ambassadors
        description: 'Private discussions between OpenStack Ambassadors'
        admin: 'tom@openstack.org'
        password: "{{ mailman_list_password }}"
      - name: superuser
        description: 'Discussions for Superuser editorial advisors to collaborate, and for readers to be able to contact the editorial team to make suggestions, provide feedback'
        admin: 'lauren@openstack.org'
        password: "{{ mailman_list_password }}"
      - name: admin-cert-wg
        description: 'Collaboration workspace for members of the Certified OpenStack Administrator Working Group of the User Commitee/Board.'
        admin: 'heidi@openstack.org'
        password: "{{ mailman_list_password }}"
      - name: openstack-api-consumers
        description: 'Discussions around consuming the OpenStack REST APIs and development of API-consuming SDKs and frameworks'
        admin: 'mordred@inaugust.com'
        password: "{{ mailman_list_password }}"
      - name: enterprise-wg
        description: 'Collaboration workspace for members of the Win The Enterprise Working Group of the User Commitee/Board.'
        admin: 'carol.l.barrett@intel.com'
        password: "{{ mailman_list_password }}"
      - name: product-wg
        description: 'Collaboration workspace for OpenStack-related Product Managers working group.'
        admin: 'stefano@openstack.org'
        password: "{{ mailman_list_password }}"
      - name: tax-affairs
        description: 'board committee focused on tax issues.'
        admin: 'seanroberts66@gmail.com'
        password: "{{ mailman_list_password }}"
      - name: third-party-announce
        description: 'Announcements for third party CI operators.'
        admin: 'anteaya@anteaya.info'
        password: "{{ mailman_list_password }}"
      - name: foundation-testing-standards
        description: 'OpenStack Foundation test standards (for humans, not drivers) working group list.'
        admin: 'seanroberts66@gmail.com'
        password: "{{ mailman_list_password }}"
      - name: analyst-relations
        description: 'Coordination of Analyst Relations Working Group.'
        admin: 'lauren@openstack.org'
        password: "{{ mailman_list_password }}"
      - name: app-catalog-admin
        description: 'Coordinate admin details for OpenStack Community App Catalog.'
        admin: 'doc@aedo.net'
        password: "{{ mailman_list_password }}"
      - name: openstack-i18n-fr
        description: 'List of the OpenStack Internationalization team, french local group.'
        admin: 'jftalta@gmail.com'
        password: "{{ mailman_list_password }}"
      - name: release-job-failures
        description: 'Notification messages for failures from release-related build jobs.'
        admin: 'doug@doughellmann.com'
        password: "{{ mailman_list_password }}"
      - name: embargo-notice
        description: 'Announcements to stakeholders for embargoed security vulnerabilities.'
        admin: 'jeremy@openstack.org'
        password: "{{ mailman_list_password }}"
      - name: release-announce
        description: 'Announcement of official OpenStack releases.'
        admin: 'thierry@openstack.org'
        password: "{{ mailman_list_password }}"
      - name: edge-computing
        description: 'Organizing efforts around the edge-computing focus area.'
        admin: 'claire@openstack.org'
        password: "{{ mailman_list_password }}"
      - name: openstack-mentoring
        description: 'List to coordinate interactions between mentors and mentees of the OpenStack mentoring program. Also for questions about the mentoring program (i.e. how to get involved, how it works, etc.'
        admin: 'amy@demarco.com'
        password: "{{ mailman_list_password }}"
      - name: openstack-discuss
        description: 'Discussion of OpenStack usage and development.'
        admin: 'fungi@yuggoth.org'
        password: "{{ mailman_list_password }}"
  - name: starlingx
    listdomain: lists.starlingx.io
    install_languages: ['en']
    lists:
      - name: mailman
        description: 'The mailman site list'
        admin: 'nobody@openstack.org'
        password: "{{ mailman_list_password }}"
      - name: starlingx-announce
        description: 'Announcements of StarlingX releases and other important information.'
        admin: 'jonathan@openstack.org'
        password: "{{ mailman_list_password }}"
      - name: starlingx-discuss
        description: 'Discussion of StarlingX usage and development.'
        admin: 'jonathan@openstack.org'
        password: "{{ mailman_list_password }}"
  - name: zuul
    listdomain: lists.zuul-ci.org
    install_languages: ['en']
    lists:
      - name: mailman
        description: 'The mailman site list'
        admin: 'nobody@openstack.org'
        password: "{{ mailman_list_password }}"
      - name: zuul-announce
        description: 'Announcements of Zuul releases and other important information.'
        admin: 'corvus@inaugust.com'
        password: "{{ mailman_list_password }}"
      - name: zuul-discuss
        description: 'Discussion of Zuul usage and development.'
        admin: 'corvus@inaugust.com'
        password: "{{ mailman_list_password }}"
      - name: zuul-jobs-failures
        description: 'Gets notifications about zuul-jobs periodic job failures.'
        admin: 'ssbarnea@redhat.com'
        password: "{{ mailman_list_password }}"