Jeremy Stanley c147dc4b5b Publish structured data listing our ML archives
In order to collect historical statistics on usage of our mailing
lists, we need an index of not only the current lists (which we
could get from Mailman) but also retired lists (which could only be
found by knowing the URL to their archives). Ultimately we should
publish hyperlinks to these so they'll continue to be indexed by
search engines, but for now start with structured YAML, which we
could later use to build that too.

Because the only way to determine the names of retired lists is from
the listserv's filesystem, we'll run a simple script once daily to
refresh the index and keep it in the Web root alongside the
robots.txt file. In the future, this could be triggered instead by
addition of new mailing lists, though while we're still managing
them with Puppet it's not clear how to go about doing that.

Of course restrict this to only indexing public list archives, as
privately-archived lists won't be accessible to the general public
by design.

Change-Id: Ibe3175a56831b7a43698d6fe454d70e93fcd0bc7
2020-09-11 00:47:22 +00:00

564 lines
19 KiB
Puppet

# == Class: openstack_project::lists
#
class openstack_project::lists(
$listpassword = ''
) {
class { 'mailman':
multihost => true,
}
file { '/var/www/robots.txt':
ensure => present,
source => 'puppet:///modules/openstack_project/mailman/robots.txt',
owner => 'root',
group => 'root',
replace => true,
mode => '0444',
}
file { '/usr/local/sbin/mk-archives-index':
ensure => present,
source => 'puppet:///modules/openstack_project/mailman/mk-archives-index',
owner => 'root',
group => 'root',
replace => true,
mode => '0744',
}
cron { 'mk-archives-index':
user => root,
hour => '0',
minute => '0',
command => 'mk-archives-index > /var/www/archives.yaml',
environment => 'PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin',
require => File['/usr/local/sbin/mk-archives-index',
],
}
# Disable inactive admins
user::virtual::disable { 'oubiwann': }
user::virtual::disable { 'rockstar': }
include bup
bup::site { 'ord.rax':
backup_user => 'bup-lists',
backup_server => 'backup01.ord.rax.ci.openstack.org',
}
# Begin user servicable parts
mailman::site { 'openstack':
default_email_host => 'lists.openstack.org',
default_url_host => 'lists.openstack.org',
# en has customized templates, don't install it here
install_languages => ['de', 'fr', 'it', 'ko', 'ru', 'vi', 'zh_TW'],
}
file { '/srv/mailman/openstack/templates/en':
ensure => directory,
owner => 'root',
group => 'list',
mode => '0644',
recurse => true,
require => File['/srv/mailman/openstack/templates'],
source => 'puppet:///modules/openstack_project/mailman/html-templates-en',
}
mailman::site { 'zuul':
default_email_host => 'lists.zuul-ci.org',
default_url_host => 'lists.zuul-ci.org',
}
mailman::site { 'airship':
default_email_host => 'lists.airshipit.org',
default_url_host => 'lists.airshipit.org',
}
mailman::site { 'starlingx':
default_email_host => 'lists.starlingx.io',
default_url_host => 'lists.starlingx.io',
}
mailman::site { 'opendev':
default_email_host => 'lists.opendev.org',
default_url_host => 'lists.opendev.org',
}
# Add new mailing lists below this line
mailman_list { 'mailman@openstack':
require => Mailman::Site['openstack'],
ensure => present,
admin => 'nobody@openstack.org',
password => $listpassword,
description => 'The mailman site list',
}
mailman_list { 'openstack-es@openstack':
require => Mailman::Site['openstack'],
ensure => present,
admin => 'flavio@redhat.com',
password => $listpassword,
description => 'Lista de correo acerca de OpenStack en español',
}
mailman_list { 'openstack-fr@openstack':
require => Mailman::Site['openstack'],
ensure => present,
admin => 'erwan@erwan.com',
password => $listpassword,
description => 'List of the OpenStack french user group',
}
mailman_list { 'openstack-de@openstack':
require => Mailman::Site['openstack'],
ensure => present,
admin => 'christian@berendt.io',
password => $listpassword,
description => 'List for German-speaking OpenStack users',
}
mailman_list { 'openstack-i18n@openstack':
require => Mailman::Site['openstack'],
ensure => present,
admin => 'guoyingc@cn.ibm.com',
password => $listpassword,
description => 'List of the OpenStack Internationalization team.',
}
mailman_list { 'openstack-i18n-de@openstack':
require => Mailman::Site['openstack'],
ensure => present,
admin => 'robert.simai@suse.com',
password => $listpassword,
description => 'List of the German OpenStack Internationalization team.',
}
mailman_list { 'openstack-ir@openstack':
require => Mailman::Site['openstack'],
ensure => present,
admin => 'Roozbeh.Shafiee@Gmail.Com',
password => $listpassword,
description => 'OpenStack IRAN Community Discussions in Persian/Farsi',
}
mailman_list { 'openstack-it@openstack':
require => Mailman::Site['openstack'],
ensure => present,
admin => 'stefano@openstack.org',
password => $listpassword,
description => 'Discussioni su OpenStack in italiano',
}
mailman_list { 'openstack-el@openstack':
require => Mailman::Site['openstack'],
ensure => present,
admin => 'aparathyras@stackmasters.eu',
password => $listpassword,
description => 'List of the OpenStack Greek User Group',
}
mailman_list { 'openstack-travel-committee@openstack':
require => Mailman::Site['openstack'],
ensure => present,
admin => 'communitymngr@openstack.org',
password => $listpassword,
description => 'Private discussions for the OpenStack Travel Program Committee for Hong Kong Summit 2013.',
}
mailman_list { 'openstack-personas@openstack':
require => Mailman::Site['openstack'],
ensure => present,
admin => 'pieter.c.kruithof-jr@hp.com',
password => $listpassword,
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.',
}
mailman_list { 'openstack-vi@openstack':
require => Mailman::Site['openstack'],
ensure => present,
admin => 'hang.tran@dtt.vn',
password => $listpassword,
description => 'Discussions in Vietnamese - please add Vietnamese translation here',
}
mailman_list { 'openstack-tw@openstack':
require => Mailman::Site['openstack'],
ensure => present,
admin => 'macjacktw@hotmail.com',
password => $listpassword,
description => 'OpenStack Taiwan User Group 臺灣使用者郵件群組)',
}
mailman_list { 'openstack-ko@openstack':
require => Mailman::Site['openstack'],
ensure => present,
admin => 'ianyrchoi@gmail.com',
password => $listpassword,
description => 'OpenStack Korea Community Discussions in Korean (오픈스택 한국 커뮤니티 메일링리스트)',
}
mailman_list { 'openstack-ru@openstack':
require => Mailman::Site['openstack'],
ensure => present,
admin => 'ilyaalekseyev@acm.org',
password => $listpassword,
description => 'Рассылка для обсуждения OpenStack на русском',
}
mailman_list { 'openstack-zh@openstack':
require => Mailman::Site['openstack'],
ensure => present,
admin => 'yeluaiesec@gmail.com',
password => $listpassword,
description => 'OpenStack社区中文讨论群组',
}
mailman_list { 'nov-2013-track-chairs@openstack':
require => Mailman::Site['openstack'],
ensure => present,
admin => 'claire@openstack.org',
password => $listpassword,
description => 'Coordination of tracks at OpenStack Summit April 2013',
}
mailman_list { 'openstack-track-chairs@openstack':
require => Mailman::Site['openstack'],
ensure => present,
admin => 'claire@openstack.org',
password => $listpassword,
description => 'Coordination of tracks at OpenStack Summits',
}
mailman_list { 'summitsponsors@openstack':
require => Mailman::Site['openstack'],
ensure => present,
admin => 'claire@openstack.org',
password => $listpassword,
description => 'Coordination among OpenStack Summit event sponsors',
}
mailman_list { 'openstack-sos@openstack':
require => Mailman::Site['openstack'],
ensure => present,
admin => 'dms@danplanet.com',
password => $listpassword,
description => 'Coordination of activities for Significant Others at Summits',
}
mailman_list { 'defcore-committee@openstack':
require => Mailman::Site['openstack'],
ensure => present,
admin => 'josh@openstack.org',
password => $listpassword,
description => 'Discussions of the OpenStack Foundation Core Definition Committee',
}
mailman_list { 'ambassadors@openstack':
require => Mailman::Site['openstack'],
ensure => present,
admin => 'tom@openstack.org',
password => $listpassword,
description => 'Private discussions between OpenStack Ambassadors',
}
mailman_list { 'superuser@openstack':
require => Mailman::Site['openstack'],
ensure => present,
admin => 'lauren@openstack.org',
password => $listpassword,
description => 'Discussions for Superuser editorial advisors to collaborate, and for readers to be able to contact the editorial team to make suggestions, provide feedback',
}
mailman_list { 'admin-cert-wg@openstack':
require => Mailman::Site['openstack'],
ensure => present,
admin => 'heidi@openstack.org',
password => $listpassword,
description => 'Collaboration workspace for members of the Certified OpenStack Administrator Working Group of the User Commitee/Board.',
}
mailman_list { 'openstack-api-consumers@openstack':
require => Mailman::Site['openstack'],
ensure => present,
admin => 'mordred@inaugust.com',
password => $listpassword,
description => 'Discussions around consuming the OpenStack REST APIs and development of API-consuming SDKs and frameworks',
}
mailman_list { 'enterprise-wg@openstack':
require => Mailman::Site['openstack'],
ensure => present,
admin => 'carol.l.barrett@intel.com',
password => $listpassword,
description => 'Collaboration workspace for members of the Win The Enterprise Working Group of the User Commitee/Board.',
}
mailman_list { 'product-wg@openstack':
require => Mailman::Site['openstack'],
ensure => present,
admin => 'stefano@openstack.org',
password => $listpassword,
description => 'Collaboration workspace for OpenStack-related Product Managers working group.',
}
mailman_list { 'tax-affairs@openstack':
require => Mailman::Site['openstack'],
ensure => present,
admin => 'seanroberts66@gmail.com',
password => $listpassword,
description => 'board committee focused on tax issues.',
}
mailman_list { 'third-party-announce@openstack':
require => Mailman::Site['openstack'],
ensure => present,
admin => 'anteaya@anteaya.info',
password => $listpassword,
description => 'Announcements for third party CI operators.',
}
mailman_list { 'foundation-testing-standards@openstack':
require => Mailman::Site['openstack'],
ensure => present,
admin => 'seanroberts66@gmail.com',
password => $listpassword,
description => 'OpenStack Foundation test standards (for humans, not
drivers) working group list.',
}
mailman_list { 'analyst-relations@openstack':
require => Mailman::Site['openstack'],
ensure => present,
admin => 'lauren@openstack.org',
password => $listpassword,
description => 'Coordination of Analyst Relations Working Group.',
}
mailman_list { 'app-catalog-admin@openstack':
require => Mailman::Site['openstack'],
ensure => present,
admin => 'doc@aedo.net',
password => $listpassword,
description => 'Coordinate admin details for OpenStack Community App Catalog.',
}
mailman_list { 'openstack-i18n-fr@openstack':
require => Mailman::Site['openstack'],
ensure => present,
admin => 'jftalta@gmail.com',
password => $listpassword,
description => 'List of the OpenStack Internationalization team, french local group.',
}
mailman_list { 'release-job-failures@openstack':
require => Mailman::Site['openstack'],
ensure => present,
admin => 'doug@doughellmann.com',
password => $listpassword,
description => 'Notification messages for failures from release-related build jobs.',
}
mailman_list { 'embargo-notice@openstack':
require => Mailman::Site['openstack'],
ensure => present,
admin => 'jeremy@openstack.org',
password => $listpassword,
description => 'Announcements to stakeholders for embargoed security vulnerabilities.',
}
mailman_list { 'release-announce@openstack':
require => Mailman::Site['openstack'],
ensure => present,
admin => 'thierry@openstack.org',
password => $listpassword,
description => 'Announcement of official OpenStack releases.',
}
mailman_list { 'edge-computing@openstack':
require => Mailman::Site['openstack'],
ensure => present,
admin => 'claire@openstack.org',
password => $listpassword,
description => 'Organizing efforts around the edge-computing focus area.',
}
mailman_list { 'openstack-mentoring@openstack':
require => Mailman::Site['openstack'],
ensure => present,
admin => 'amy@demarco.com',
password => $listpassword,
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.',
}
mailman_list { 'mailman@zuul':
require => Mailman::Site['zuul'],
ensure => present,
admin => 'nobody@openstack.org',
password => $listpassword,
description => 'The mailman site list',
}
mailman_list { 'zuul-announce@zuul':
require => Mailman::Site['zuul'],
ensure => present,
admin => 'corvus@inaugust.com',
password => $listpassword,
description => 'Announcements of Zuul releases and other important information.',
}
mailman_list { 'zuul-discuss@zuul':
require => Mailman::Site['zuul'],
ensure => present,
admin => 'corvus@inaugust.com',
password => $listpassword,
description => 'Discussion of Zuul usage and development.',
}
mailman_list { 'zuul-jobs-failures@zuul':
require => Mailman::Site['zuul'],
ensure => present,
admin => 'ssbarnea@redhat.com',
password => $listpassword,
description => 'Gets notifications about zuul-jobs periodic job failures.',
}
mailman_list { 'mailman@airship':
require => Mailman::Site['airship'],
ensure => present,
admin => 'nobody@openstack.org',
password => $listpassword,
description => 'The mailman site list',
}
mailman_list { 'airship-announce@airship':
require => Mailman::Site['airship'],
ensure => present,
admin => 'jonathan@openstack.org',
password => $listpassword,
description => 'Announcements of Airship releases and other important information.',
}
mailman_list { 'airship-discuss@airship':
require => Mailman::Site['airship'],
ensure => present,
admin => 'jonathan@openstack.org',
password => $listpassword,
description => 'Discussion of Airship usage and development.',
}
mailman_list { 'airship-job-failures@airship':
require => Mailman::Site['airship'],
ensure => present,
admin => 'roman.gorshunov@att.com',
password => $listpassword,
description => 'Notification messages for failures from CICD jobs.',
}
mailman_list { 'airship-security@airship':
require => Mailman::Site['airship'],
ensure => present,
admin => 'andrew.walters@att.com',
password => $listpassword,
description => 'Public Airship security advisories.',
}
mailman_list { 'airship-embargo-notice@airship':
require => Mailman::Site['airship'],
ensure => present,
admin => 'andrew.walters@att.com',
password => $listpassword,
description => 'Embargoed security vulnerability announcements for Airship consumers.',
}
mailman_list { 'mailman@starlingx':
require => Mailman::Site['starlingx'],
ensure => present,
admin => 'nobody@openstack.org',
password => $listpassword,
description => 'The mailman site list',
}
mailman_list { 'starlingx-announce@starlingx':
require => Mailman::Site['starlingx'],
ensure => present,
admin => 'jonathan@openstack.org',
password => $listpassword,
description => 'Announcements of StarlingX releases and other important information.',
}
mailman_list { 'starlingx-discuss@starlingx':
require => Mailman::Site['starlingx'],
ensure => present,
admin => 'jonathan@openstack.org',
password => $listpassword,
description => 'Discussion of StarlingX usage and development.',
}
mailman_list { 'openstack-discuss@openstack':
require => Mailman::Site['openstack'],
ensure => present,
admin => 'fungi@yuggoth.org',
password => $listpassword,
description => 'Discussion of OpenStack usage and development.',
}
mailman_list { 'mailman@opendev':
require => Mailman::Site['opendev'],
ensure => present,
admin => 'nobody@openstack.org',
password => $listpassword,
description => 'The mailman site list',
}
mailman_list { 'rust-vmm@opendev':
require => Mailman::Site['opendev'],
ensure => present,
admin => 'claire@openstack.org',
password => $listpassword,
description => 'Collaborating on Rust-based virtual machine monitors.',
}
mailman_list { 'rustyk8s@opendev':
require => Mailman::Site['opendev'],
ensure => present,
admin => 'allison@lohutok.net',
password => $listpassword,
description => 'Collaborating on Rust-based Kubernetes API.',
}
mailman_list { 'nbmp-discuss@opendev':
require => Mailman::Site['opendev'],
ensure => present,
admin => 'ildiko@openstack.org',
password => $listpassword,
description => 'Collaborating on Network Based Media Processing related platform and infrastructure systems usage and development.',
}
mailman_list { 'service-announce@opendev':
require => Mailman::Site['opendev'],
ensure => present,
admin => 'cboylan@sapwetik.org',
password => $listpassword,
description => 'Announcement list for OpenDev services.',
}
mailman_list { 'service-discuss@opendev':
require => Mailman::Site['opendev'],
ensure => present,
admin => 'cboylan@sapwetik.org',
password => $listpassword,
description => 'Discussion list for OpenDev services.',
}
mailman_list { 'openinfralabs@opendev':
require => Mailman::Site['opendev'],
ensure => present,
admin => 'mnaser@vexxhost.com',
password => $listpassword,
description => 'Discussion of the OpenInfra Labs academic and research resource sharing effort',
}
}