orbitalci / orbital

Orbital is a self-hosted CI system for solo/small consulting dev teams. Written in Rust.
GNU General Public License v3.0
29 stars 2 forks source link

Werker - Build Monitor - Consul system documentation #212

Closed tjtelan closed 4 years ago

tjtelan commented 5 years ago

As I'm getting more familiar with where to look in the codebase, I'm noticing that a lot of internal communication is tagged with UUIDs.

Our Consul instance has been running for a while now, and the ci/ consul KV directory has 3 directories inside: builds, werker_build_map and werker_location.

One level deeper (pick one of the above directories) me, and we have a wide list of UUIDs, and one more level deeper, there are references to a specific werker's connection info. I have a wide list of entries that reference IPs that are no longer in use.

Our docs don't really mention what these are for, and what it means to clean up this space (or if we'd ever want to, for that matter).

I think we are using this area as a hashmap to keep track of where builds are running, and possibly how to connect live streaming logs? Evidently there is a break in the pointers that restarting a Werker doesn't fix.

I'm a little confused about why I might need to clean up in Consul at all for streaming logs to work, and perhaps that is because there is a bug here. But I currently can't build a mental model for what this system is supposed to look like when it is properly functioning...