Skip to content

Commit 62c151c

Browse files
classabbyampthe-maldridge
authored andcommitted
docs/services/buildbot: update for nomad
1 parent 0a15302 commit 62c151c

File tree

1 file changed

+38
-12
lines changed

1 file changed

+38
-12
lines changed

docs/src/services/buildbot.md

Lines changed: 38 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,13 @@
22

33
BuildBot is our legacy build scheduler.
44

5-
The buildbot master runs at
5+
The buildbot controller runs at
66
[build.voidlinux.org](https://build.voidlinux.org) and provides
77
unified scheduling to all other build tasks in the fleet. BuildBot
88
also exposes a web interface.
99

1010
The current status of the build infrastructure can be found on the
11-
build waterfall. This view shows what each of the buildslaves is
11+
build waterfall. This view shows what each of the builders is
1212
doing right now, and uses traffic light colors for build state. A
1313
purple builder is usually a reason to contact void-ops and figure out
1414
what's wrong with the build host.
@@ -18,18 +18,44 @@ failed without needing to push a new commit. Not all committers have
1818
access to restart failed builds this way. If you believe that you
1919
should have this access, contact maldridge@.
2020

21-
## Moving a buildslave
21+
## Moving a builder
2222

23-
Don't.
23+
First, all builds need to be paused until the move can be completed.
24+
Builders must be moved in the groups they currently are in (glibc, musl,
25+
and aarch64). Sync the hostdir host volume to the new location, then
26+
migrate the nomad job to the new host.
2427

25-
In the event that this is unavoidable, all builds need to be paused
26-
until the move can be completed. In the even the builder that needs
27-
to be moved is on the musl cluster, all musl builders will need to be
28-
moved with it. Similarly, the aarch64 builders must always move as a
29-
pair.
28+
## Updating buildbot
29+
30+
The buildbot controller and builders should be kept at the same buildbot
31+
version.
32+
33+
1. Update the buildbot version in both the `buildbot` and
34+
`buildbot-builder` Dockerfiles.
35+
2. Rebuild the service containers by triggering a build for the
36+
`infra-buildbot` and `infra-buildbot-builder` containers in CI.
37+
3. Update the nomad jobs to use the new containers and restart them
38+
with the task meta variable `db-upgrade = "true"`. This will run
39+
any necessary migrations on startup.
40+
4. Re-set `db-upgrade = "false"`. The job does not need to be
41+
redeployed, but on the next deployment, it will not run the upgrade.
42+
43+
## Future Plans
44+
45+
Buildbot 4 uses the database to store logs. Currently, we are using the sqlite
46+
backend. If this causes performance issues in the future, we should switch to
47+
[postgres](https://docs.buildbot.net/current/manual/deploy.html#using-a-database-server).
48+
To migrate the database from sqlite, the steps appear to be:
49+
50+
1. Ensure the sqlite database is fully upgraded by running the controller task with
51+
`db-upgrade = "true"`.
52+
2. Set up a postgres server with a buildbot user (see Buildbot's documentation linked
53+
above).
54+
3. Run `buildbot copydb postgres://buildbot:passw0rd@ip/buildbot /path/to/buildbot/basedir`.
55+
4. Update the buildbot configuration to use the new database url.
3056

3157
## EOL
3258

33-
BuildBot is slated for replacement this fall/winter. The system will
34-
be replaced by the Distributed XBPS Package Builder (dxpb) which will
35-
resolve many of the long standing problems in the buildbot.
59+
BuildBot is slated for replacement in the future. The system will
60+
be replaced by the Distributed XBPS Package Builder (dxpb) or nbuild
61+
which will resolve many of the long standing problems in the buildbot.

0 commit comments

Comments
 (0)