ReleaseEngineering/PuppetAgain/Modules/buildmaster
Contents
Buildmasters
This module installs and sets up the buildmaster software. Multiple buildmasters can be installed on the same node. This module supports two different styles of masters, "Mozilla", and "Simple". More detailed descriptions of both are below.
Facts
- num_masters
- The number of masters configured on this host. Note that because the number of masters is determined by other puppet settings, the value of this fact will lag behind reality by one puppet run. That is, if a puppet run adds a new master to the 2 already present, the $num_masters fact will be 2, not 3, during that run.
Secrets
These secrets are common to the different types of masters:
- buildbot_schedulerdb_username
- buildbot_schedulerdb_password
- buildbot_schedulerdb_hostname
- buildbot_schedulerdb_database
- credentials for the Buildbot database
"Mozilla" buildmasters
Mozilla buildmasters are special because they are set-up using external scripts to do some of the the work. To set up a node as Mozilla buildmaster node, use the following snippet in the nodes definition. (configuration should not be in nodes.pp there is already bug 848824 for this.)
node "relabs07.build.mtv1.mozilla.com" { buildmaster::buildbot_master::mozilla { "bm07-build1": http_port => 8001, master_type => "build", basedir => "build1"; } buildmaster::buildbot_master::mozilla { "bm07-build2": http_port => 8002, master_type => "build", basedir => "build2"; } include toplevel::server::buildmaster
Masters can be one of the following:
- build
- scheduler
- try
- tests
Masters will be installed in:
/builds/buildbot/${basedir}
Secrets
This module fills in BuildSlaves.py, postrun.cfg, and passwords.py with a bunch of secrets used to communicate with other services:
- blobber_password
- blobber_username
- Username and password used to communicate with Blobber
- jetperf_oauth_key
- jetperf_oauth_secret
- talos_oauth_key
- talos_oauth_secret
- datazilla authentication tokens
- android_tests_password
- linux_tests_password
- mac_tests_password
- win_tests_password
- prod_build_password
- try_build_password
- Buildbot slave passwords, per slave type
- balrog_credentials
- Balrog credentials - key/value pairs
- tuxedo_password
- tuxedo_username
- tuxedo credentials
- pulse_exchange
- pulse_username
- pulse_password
- AMQP credentials for access to http://pulse.mozilla.org
- buildbot_statusdb_username
- buildbot_statusdb_password
- buildbot_statusdb_hostname
- buildbot_statusdb_database
- credentials for the status database
- signing_server_dep_password
- signing_server_nightly_password
- signing_server_release_password
- signing_server_username
- signing server credentials, per build type
- buildmaster_ssh_key_*
- SSH keys that will be placed on buildmasters; see the buildmaster_ssh_keys configuration option.
servo buildmasters
Servo buildmasters are fully setup by Puppet. Instantiation usually should happen in a toplevel class using a snippet like:
buildmaster::buildbot_master::servo { "servo1": basedir => "/builds/buildbot/servo1", http_port => 8001, master_cfg => "puppet:///modules/buildmaster/servo/master.cfg"; }
"buildbot_version" can also be passed to install an alternative version of Buildbot.
Secrets
This uses the following secrets:
- servo_slave_password
- Buildbot slave password