OLD | NEW |
| (Empty) |
1 # == Class: adblockplus::buildmaster | |
2 # | |
3 # An authoritative build-server setup based on Buildbot and Nginx. | |
4 # | |
5 # === Parameters: | |
6 # | |
7 # [*domain*] | |
8 # The domain name associated with the Buildbot waterfall page. | |
9 # | |
10 # [*is_default_domain*] | |
11 # Whether the Buildbot page should serve as the default content | |
12 # handler with the HTTP server setup. | |
13 # | |
14 # [*buildbot_config*] | |
15 # Translates directly into the $buildbot::master::config option. | |
16 # | |
17 # [*ssl_cert*] | |
18 # The SSL certificate file name within the private module, if any. | |
19 # Requires an $ssl_key to be provided as well. | |
20 # | |
21 # [*ssl_key*] | |
22 # The SSL key file name within the private module, if any. | |
23 # Requires an $ssl_cert to be provided as well. | |
24 # | |
25 # [*slaves*] | |
26 # Local buildbot::slave records to setup with the master. | |
27 # | |
28 # [*slave_credentials*] | |
29 # Name => password pairs of e.g. remote build slaves. | |
30 # | |
31 # === Examples: | |
32 # | |
33 # class {'adblockplus::buildmaster': | |
34 # domain => 'localhost', | |
35 # is_default_domain => true, | |
36 # } | |
37 # | |
38 class adblockplus::buildmaster ( | |
39 $domain, | |
40 $is_default_domain = false, | |
41 $buildbot_config = {}, | |
42 $ssl_cert = hiera('adblockplus::buildmaster::ssl_cert', 'undef'), | |
43 $ssl_key = hiera('adblockplus::buildmaster::ssl_key', 'undef'), | |
44 $slaves = hiera('adblockplus::buildmaster::slaves', {}), | |
45 $slave_credentials = hiera('adblockplus::buildmaster::slave_credentials', {}), | |
46 ) { | |
47 | |
48 include nginx | |
49 | |
50 # change default behavior, but still recognize hiera values | |
51 class {'buildbot': | |
52 master_service => hiera('buildbot::master_service', 'running'), | |
53 slave_service => hiera('buildbot::slave_service', 'running'), | |
54 } | |
55 | |
56 # Computable $buildbot::master::config parameters | |
57 $default_scheme = $ssl_cert ? {/^(undef|)$/ => 'http', default => 'https'} | |
58 $default_config = { | |
59 'buildbotURL' => sprintf('%s://%s/', $default_scheme, $domain), | |
60 } | |
61 | |
62 buildbot::master {'default': | |
63 config => merge($default_config, $buildbot_config), | |
64 slaves => $slaves, | |
65 slave_credentials => $slave_credentials, | |
66 system => true, | |
67 } | |
68 | |
69 buildbot::fragment {'custom': | |
70 authority => Buildbot::Master['default'], | |
71 content => template('adblockplus/buildmaster.erb'), | |
72 } | |
73 | |
74 nginx::hostconfig {$domain: | |
75 certificate => $ssl_cert ? { | |
76 'undef' => undef, | |
77 default => $ssl_cert, | |
78 }, | |
79 source => 'puppet:///modules/adblockplus/nginx/buildmaster.conf', | |
80 is_default => $is_default_domain, | |
81 log => 'access_log_buildbot', | |
82 private_key => $ssl_key ? { | |
83 'undef' => undef, | |
84 default => $ssl_key, | |
85 }, | |
86 } | |
87 } | |
OLD | NEW |