Opened 4 years ago

Last modified 18 months ago

#3093 new enhancement

Multi-master configuration via one config.

Reported by: Ben Owned by:
Priority: major Milestone: 0.9.+
Version: master Keywords: multi-master
Cc:

Description

As hinted by @dustin in #3084, it is better indeed to open a new issue about that than polluting other ones.

I'd like to have a central entity that has power over the masters when running in multi-master mode (n >= 1) {note the =: it hits everyone}

If n == 1, that entity could be embedded in the one master.

I would favorize an (external) entity that would manage the configuration, compile it, and send the compiled result to the right masters for self configuration. I could imagine that each master could get a different portion of the config.

The main driving factor for that idea is that while the config is code, once compiled, it is completely frozen. Hence compiling it once for all masters would be enough.

Change History (4)

comment:1 Changed 4 years ago by dustin

My thought for this is as follows:

The config provider runs an HTTP service which, given a Python module path, returns Python source.

The masters have a stubbed-out configuration file which installs an import hook that can talk to the config provider, then imports some canonical name (e.g., import remote_buildbot_config).

This way, all of the Python source used in the (re)load come from the same source directory. And best of all, the client side can be accomplished without changes to Buildbot.

comment:2 follow-up: Changed 4 years ago by Ben

I like that last part !

Does this solves our trouble with the inactive elements still shown in the webUI ?

Would all master receive the exact same (full) configuration ?

comment:3 in reply to: ↑ 2 Changed 4 years ago by dustin

Replying to Ben:

Does this solves our trouble with the inactive elements still shown in the webUI ?

No - that requires some orchestration to know when all masters are reconfigured. The critical bit of that is in the DB, which is what would enable the cleanup.

Would all master receive the exact same (full) configuration ?

Yes.

Note: See TracTickets for help on using tickets.