docs: swarm/services.md is one blurb per service, the host detail moves to the service's implementation page
Each service section lost its container, credential and metrics detail to a Host setup section on its own implementation page, unchanged apart from links. The four agentAuth option rows that sat above the page title moved into the telemetry page's metrics option table.
This commit is contained in:
parent
60aede950b
commit
814edd1d67
1 changed files with 392 additions and 308 deletions
|
|
@ -389,3 +389,34 @@ builder — disk-pressure collection at least runs while nothing is mid-copy.
|
|||
- `swarm-controller/src/forge/runner_token.rs`: publishes the registration token.
|
||||
- `.forgejo/workflows/ci.yml`: workflow definition.
|
||||
- `docs/5-project/process/gotchas.md`: nix sandboxing limitations in containers.
|
||||
|
||||
## Host setup
|
||||
|
||||
One Forgejo Actions runner, in a `swarm-ci-runner` container on the host that
|
||||
sets `deploy.ci-runner.enable`. It doesn't derive from `allSwarmServices`: a
|
||||
runner executes pull-request code, so running one is a decision of its own.
|
||||
|
||||
It needs neither the forge nor a hive on its host. It reaches the forge at
|
||||
`https://<swarm.forge.domain>`, and registers with the token swarm-controller
|
||||
publishes to the secret store, which it reads under its own `ci-runner` leaf.
|
||||
On a host without the store, that leaf is the one file to copy.
|
||||
|
||||
The runner's built-in Prometheus endpoint is on, bound to `127.0.0.1:9101` in
|
||||
the container's own network namespace. The container's journal forwarder
|
||||
scrapes it (`services.hyperhive.swarmJournalForwarder.extraScrapeTargets`) and
|
||||
pushes the series to the swarm collector under the job `gitea-runner`, so
|
||||
nothing listens on the bridge. Series, all prefixed `gitea_runner_`:
|
||||
`job_running`, `capacity`, `job_capacity_utilization_ratio`, `uptime_seconds`,
|
||||
`info` (labels `version` and `name`), `job_total{status}`,
|
||||
`job_duration_seconds`, `poll_fetch_total{result}`,
|
||||
`poll_fetch_duration_seconds`, `poll_backoff_seconds`, `report_log_*`,
|
||||
`report_state_*` and `client_errors_total`. A pull-request job runs in the same
|
||||
namespace and can read the endpoint, which carries counts, durations, the
|
||||
runner's name and its version, and no secrets.
|
||||
|
||||
The **ci runner** board in Grafana shows these series. Its **Runner** filter
|
||||
(the series' `service.instance.id`, the scrape address) narrows every panel,
|
||||
and uptime, job slots and slot use show one series per runner, so a runner
|
||||
registered by hand appears beside the swarm's once its metrics reach the
|
||||
store under its own instance id. The forge's **CI runs** tab is the other
|
||||
view: run times and queue wait of every run, whichever runner ran it.
|
||||
|
|
|
|||
Loading…
Reference in a new issue