summaryrefslogtreecommitdiff
path: root/modules/openstack_project/manifests/firehose.pp
blob: 1eadf8e6f6a1bf7933c7ad4d3aed1b43416e0366 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
# Copyright 2016 Hewlett-Packard Development Company, L.P.
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
# firehose glue class.
#
class openstack_project::firehose (
  $sysadmins = [],
  $gerrit_username = 'germqtt',
  $gerrit_public_key,
  $gerrit_private_key,
  $gerrit_ssh_host_key,
  $imap_username,
  $imap_hostname,
  $imap_password,
  $mqtt_hostname = 'firehose.openstack.org',
  $mqtt_password,
  $mqtt_username = 'infra',
  $statsd_host,
  $ca_file,
  $cert_file,
  $key_file,
) {
  include mosquitto
  class {'mosquitto::server':
    infra_service_username => $mqtt_username,
    infra_service_password => $mqtt_password,
    enable_tls             => true,
    ca_file                => $ca_file,
    cert_file              => $cert_file,
    key_file               => $key_file,
  }

  include germqtt
  class {'germqtt::server':
    gerrit_username     => $gerrit_username,
    gerrit_public_key   => $gerrit_public_key,
    gerrit_private_key  => $gerrit_private_key,
    gerrit_ssh_host_key => $gerrit_ssh_host_key,
    mqtt_username       => $mqtt_username,
    mqtt_password       => $mqtt_password,
  }

  package {'cyrus-imapd':
    ensure => latest,
  }

  package {'sasl2-bin':
    ensure => latest,
  }

  package {'cyrus-admin':
    ensure => latest,
  }

  service {'cyrus-imapd':
    ensure => running,
  }

  class {'::exim':
    sysadmins => $sysadmins,
    local_domains => "@:firehose.openstack.org",
    routers  => [
      {'cyrus' => {
        'driver'                     => 'accept',
        'domains'                    => '+local_domains',
        'local_part_suffix'          => '+*',
        'local_part_suffix_optional' => true,
        'transport'                  => 'cyrus',
      }}
    ],
    transports => [
      {'cyrus' => {
        'driver'    => 'lmtp',
        'socket'    => '/var/run/cyrus/socket/lmtp',
        'user'      => 'cyrus',
        'batch_max' => '35',
      }}
    ],
    require  => Package['cyrus-imapd'],
  }

  include lpmqtt
  class {'lpmqtt::server':
    mqtt_username => $mqtt_username,
    mqtt_password => $mqtt_password,
    imap_hostname => $imap_hostname,
    imap_username => $imap_username,
    imap_password => $imap_password,
    imap_use_ssl  => false,
    imap_delete_old => true,
  }

  include mqtt_statsd
  class {'mqtt_statsd::server':
    mqtt_hostname   => $mqtt_hostname,
    statsd_hostname => $statsd_host,
  }
}