ReleaseEngineering/PuppetAgain/Modules/buildmaster

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.

"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 a [bug] 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 a BuildSlaves.py file 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
Slave passwords, per slave type
balrog_password
balrog_username
Balrog credentials
tuxedo_password
tuxedo_username
tuxedo credentials

"Simple" buildmasters

Simple buildmasters are fully setup by Puppet. Instantiation usually should happen in a toplevel class using a snippet like:

buildmaster::buildbot_master::simple {
    "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.