canmove, Confirmed users
1,394
edits
No edit summary |
|||
Line 1: | Line 1: | ||
= | = Build Masters = | ||
we have lots! | we have lots! | ||
canonical list is | The user-visible list is at [https://intranet.mozilla.org/RelEngWiki/index.php/Masters Masters] (auth required). The canonical list is http://hg.mozilla.org/build/tools/raw-file/default/buildfarm/maintenance/production-masters.json | ||
source for buildbot is at http://hg.mozilla.org/build/buildbot/ | source for buildbot is at http://hg.mozilla.org/build/buildbot/ | ||
= | = Clobberer = | ||
https://build.mozilla.org/clobberer/ and https://build.mozilla.org/stage-clobberer | https://build.mozilla.org/clobberer/ and https://build.mozilla.org/stage-clobberer | ||
Line 14: | Line 13: | ||
DB is a sqlite file local to the web server | DB is a sqlite file local to the web server | ||
= | = Buildapi = | ||
includes self-serve, wait time reports, pending/running | includes self-serve, wait time reports, pending/running | ||
== Source Code == | |||
http://hg.mozilla.org/build/buildapi | http://hg.mozilla.org/build/buildapi | ||
== Public Interfaces == | |||
https://build.mozilla.org/buildapi | https://build.mozilla.org/buildapi | ||
== Current Setup == | |||
production instance is running on cruncher.b.m.o out of | production instance is running on cruncher.b.m.o out of ~catlee/buildapi-official. There is a cron job that checks for new changes every 5 minutes and deploys them. This instance is exposed to the public behind LDAP auth via proxy from the build.m.o url. | ||
~catlee/buildapi-official. There is a cron job that checks for new changes | |||
every 5 minutes and deploys them. This instance is exposed to the public | |||
behind LDAP auth via the build.m.o url. | |||
The buildapi instance communicates with a rabbitmq server also running on | The buildapi instance communicates with a rabbitmq server also running on cruncher. It also connects to two read-only databases (schedulerdb, statusdb) on a slave mysql host maintained by IT. | ||
cruncher. It also connects to two read-only databases (schedulerdb, statusdb) | |||
on a slave mysql host maintained by IT. | |||
The self-serve agent, which is responsible for performing many of the job | The self-serve agent, which is responsible for performing many of the job requests, is running on production-master03 out of ~cltbld/buildapi. It is a long-running process that waits for messages from the rabbitmq server on cruncher, and then makes various DB modifications or pokes at masters' web interfaces. The self-serve agent is started via init, and monitored via nagios. | ||
requests, is running on production-master03 out of ~cltbld/buildapi. It is a | |||
long-running process that waits for messages from the rabbitmq server on | |||
interfaces. The self-serve agent is started via init, and monitored via | |||
nagios. | |||
To modify the list of branches supported by buildapi and self-serve, read [[ReleaseEngineering/BuildAPI#Maintenance]] | To modify the list of branches supported by buildapi and self-serve, read [[ReleaseEngineering/BuildAPI#Maintenance]] | ||
== Setup Instructions == | |||
Described at [[ReleaseEngineering/BuildAPI]] | Described at [[ReleaseEngineering/BuildAPI]] | ||
== | = slavealloc = | ||
(still being deployed .. so at the moment all of this is future) | |||
== Application Description == | |||
Slavealloc is a client-server application. The client is [http://hg.mozilla.org/build/puppet-manifests/file/tip/modules/buildslave/files/runslave.py runslave.py]. Communication is via a very basic HTTP request to http://slavealloc.build.mozilla.org/production/gettac/$slavename, where the response is expected to be a <tt>buildbot.tac</tt> file suitable for use to start buildslave. | |||
== regression detection | The slavealloc server is a implemented as a small Twisted application ([http://hg.mozilla.org/build/tools/file/tip/slavealloc source]) which serves the tac generator, a JSON REST interface, and a client-side JavaScript interface. | ||
The same source code also implements a command-line frontend to the REST interface. | |||
== Requirements == | |||
== Deployment == | |||
== External Resources == | |||
== Security == | |||
The slave allocator hands out low-security slave passwords in the .tac files, which are stored in cleartext in the database. It does not do any sort of authentication either for read or modify operations, and relies on the Build VLAN firewalls to prevent external access. | |||
== Development == | |||
Install tools in a virtualenv: | |||
cd tools | |||
virtualenv sandbox | |||
sandbox/bin/pip install -e . | |||
Then you can run the slavealloc daemon locally from the root of the tools repository with a simple: | |||
sandbox/bin/twistd -noy slavealloc-combined.tac | |||
Note that due to what I believe to be a bug in pip, you may need to explicitly install Twisted to get the twistd executable installed: | |||
pip install -U twisted | |||
This configuration will use SQLite to access {{{slavealloc.db}}} in the current directory. You can hack on the static web content while the daemon is running. | |||
== See Also == | |||
See [[User:Djmitche/Slave Allocator Proposal]] | |||
= regression detection = | |||
code is http://hg.mozilla.org/graphs/file/9c02347596b4/server/analysis | code is http://hg.mozilla.org/graphs/file/9c02347596b4/server/analysis | ||