Watch
0
0
Fork
You've already forked hyperhive
0

swarm-builder, swarm-claude-login, swarm-review-classifier: forward each container's journal to the swarm collector

Each container now runs the journal forwarder the queue's container runs,
pushing to a receiver of its own on the swarm collector as the service's
existing OIDC client, with the client's secret read inside the container
by the fetch unit. Their store identities are system credentials, so the
fetch unit loads them too. The three containers drop --link-journal=host,
which hid their journals from the forwarder, and the host collector stops
reading them.
This commit is contained in:
atlas 2026-10-16 03:28:23 +02:00
commit a2a94f63c8
10 changed files with 321 additions and 32 deletions

View file

@ -288,12 +288,13 @@ gateway either way.
| `swarm.otel.domain` | Only to rename it — the default already resolves correctly for every hive in the swarm. |
| `swarm.otel.port` | Only if something else on the services host already claims `4319`. |
The `swarm-bao` and `swarm-nats` containers each run a collector of their own
that forwards the container's journal here, on a route and receiver per
service (`https://<swarm.otel.domain>/<container>/`), authenticated as that
service's own OIDC client. Their records carry `service.name` (`bao`,
`nats`) and no `hive` label. The queue's forwarder is
`nix/container-modules/swarm-journal-forwarder.nix`.
The `swarm-bao`, `swarm-nats`, `swarm-builder`, `swarm-claude-login` and
`swarm-review-classifier` containers each run a collector of their own that
forwards the container's journal here, on a route and receiver per service
(`https://<swarm.otel.domain>/<container>/`), authenticated as that service's
own OIDC client. Their records carry `service.name` (`bao`, `nats`, `builder`,
`claude-login`, `review-classifier`) and no `hive` label. The forwarder of all
but the store's is `nix/container-modules/swarm-journal-forwarder.nix`.
**Both store exporters are unconditional**, and `deploy.victoriametrics.enable`
doesn't gate them: that option says this host _runs_ the store, while the swarm