You need the following ingredients
2. NFS mount for 'jobs' folder to share console output, artifacts ect.
Setup:
1. Install and configure plugins mentioned above
2. Start multiple Jenkins instances with share mounted/symlinked 'jobs' folder .
3. Done.
Method:
Build Abort: Aborting a 'ha build' puts a message into redis queue , which
gets processed by all masters and the master running the actual build aborts it.
Queued item Abort: Same mechanism as above ^.
Build Execution: Build execution happens in a dynamically created agent. Build info is written to db via DotCi, and build logs are synced to all masters via NFS.
Build Delete: Build gets deleted in DotCi database.
I've done some testing and this setup seems to work fine and is totally transparent to end user. But I haven't done any extensive testing for edge cases.
I am curious to know what experts here think about this. What are the things that could go wrong with a setup like this?
Surya