Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code

Delta Between Two Patch Sets: modules/adblockplus/manifests/buildmaster.pp

Issue 29325436: Issue 1281 - Introduce module buildbot (Closed)
Left Patch Set: Created Sept. 1, 2015, 1:30 p.m.
Right Patch Set: Issue 1281 - Fix documentation, improve configuration parameter handling Created Jan. 20, 2016, 4:13 p.m.
Left:
Right:
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
Right: Side by side diff | Download
LEFTRIGHT
(no file at all)
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 }
LEFTRIGHT

Powered by Google App Engine
This is Rietveld