| Index: modules/adblockplus/manifests/buildmaster.pp |
| diff --git a/modules/adblockplus/manifests/buildmaster.pp b/modules/adblockplus/manifests/buildmaster.pp |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..d6092fd7cbcd48ff2c9e6b7cd0dc42dc82aba910 |
| --- /dev/null |
| +++ b/modules/adblockplus/manifests/buildmaster.pp |
| @@ -0,0 +1,82 @@ |
| +# == Class: adblockplus::buildmaster |
| +# |
| +# An authoritative build-server setup based on Buildbot and Nginx. |
| +# |
| +# === Parameters: |
| +# |
| +# [*domain*] |
| +# The domain name associated with the Buildbot waterfall page. |
| +# |
| +# [*is_default_domain*] |
| +# Whether the Buildbot page should serve as the default content |
| +# handler with the HTTP server setup. |
| +# |
| +# [*project*] |
| +# A hash to optionally contain a 'title' and 'url' for the project; |
| +# translats directly into the $buildbot::master::project option. |
|
Felix Dahlke
2015/11/19 19:50:00
Typo: "translats"
mathias
2016/01/20 16:13:51
Acknowledged.
|
| +# |
| +# [*ssl_cert*] |
| +# The SSL certificate file name within the private module, if any. |
| +# Requires an $ssl_key to be provided as well. |
| +# |
| +# [*ssl_key*] |
| +# The SSL key file name within the private module, if any. |
| +# Requires an $ssl_cert to be provided as well. |
| +# |
| +# [*slaves*] |
| +# Local buildbot::slave records to setup with the master. |
| +# |
| +# [*slave_credentials*] |
| +# Name => password pairs of e.g. remote build slaves. |
|
Felix Dahlke
2015/11/19 19:50:01
Why "e.g.", do we need credentials for local slave
mathias
2016/01/20 16:13:51
Yes.
|
| +# |
| +# === Examples: |
| +# |
| +# class {'adblockplus::buildmaster': |
| +# domain => 'localhost', |
| +# is_default_domain => true, |
| +# } |
| +# |
| +class adblockplus::buildmaster ( |
| + $domain, |
| + $is_default_domain = false, |
| + $project = {}, |
| + $ssl_cert = hiera('adblockplus::buildmaster::ssl_cert', 'undef'), |
| + $ssl_key = hiera('adblockplus::buildmaster::ssl_key', 'undef'), |
| + $slaves = hiera('adblockplus::buildmaster::slaves', {}), |
| + $slave_credentials = hiera('adblockplus::buildmaster::slave_credentials', {}), |
| +) { |
| + |
| + include nginx |
| + |
| + # change default behavior, but still recognize hiera values |
| + class {'buildbot': |
| + master_service => hiera('buildbot::master_service', 'running'), |
| + slave_service => hiera('buildbot::slave_service', 'running'), |
| + } |
| + |
| + buildbot::master {'default': |
| + project => $project, |
| + slaves => $slaves, |
| + slave_credentials => $slave_credentials, |
| + system => true, |
| + } |
| + |
| + buildbot::fragment {'custom': |
| + authority => Buildbot::Master['default'], |
| + content => template('adblockplus/buildmaster.erb'), |
| + } |
| + |
| + nginx::hostconfig {$domain: |
| + certificate => $ssl_cert ? { |
| + 'undef' => undef, |
| + default => $ssl_cert, |
| + }, |
| + source => 'puppet:///modules/adblockplus/nginx/buildmaster.conf', |
| + is_default => $is_default_domain, |
| + log => 'access_log_buildbot', |
| + private_key => $ssl_key ? { |
| + 'undef' => undef, |
| + default => $ssl_key, |
| + }, |
| + } |
| +} |