feat(ci): Forgejo pool counts, cc:host_hot, api_ok in ci/pools #616

Open
kblack0610 wants to merge 1 commit from feat/ci-forgejo-pool-host-hot-api-ok into master
Owner

The board row asked for three things. The Forgejo runner rows already landed in #520, so this PR covers what was still missing.

  • Forgejo pool counts. The exporter now emits github_runner_pool_expected / _online for pool="forgejo" as one host="k3s" row. Expected is the runner Deployment's replicas x the ConfigMap's capacity. A runner that is not ready, or a pod stuck Pending, now turns ci/pools warn and counts in cc:ci_online / cc:ci_expected. runner-reader-rbac.yaml gets get on that one Deployment.
  • api_ok in ci/pools. When a runner source fails, pool_online is absent and the short-pool count came back empty, so ci/pools read ok while blind. It now goes to 1 when any api_ok{kind="runners"} is 0, or when no runner source reports at all.
  • cc:host_hot{host}. 0 ok, 1 over 90C for 10m, 2 over 95C for 2m. Those are the NodeCpuHot and NodeCpuCritical thresholds and hold times, so the board marks the same machine the alert names. A new machines/thermal component reads it.

assumed: Forgejo pool is one host="k3s" row, because the pods float between nodes and no node has an expected size.
assumed: the workstation is left out of cc:host_hot, because its 7900X runs at 95C by design and the fleet_thermal watch already judges it.
assumed: no cc:red_now row for a hot host, because NodeCpuCritical already pages it.

Checks run locally:

  • test_exporter.py: 63 tests OK, 1 of them new, plus pool-row assertions added to the unreadable-runners test.
  • scripts/test-prometheus-rules.sh in alpine with promtool: all suites SUCCESS, with 4 new command-center cases. Negative control: with the api_ok clauses removed and the 90C line moved, 3 expectations failed. Then I restored both.
  • check-fleet-roster, check-runner-roster, test_governor, check-ha-packages, check-secret-store: all ok.

Not verified: live values after Flux applies (github_runner_pool_online{pool="forgejo"}, and cc:ci_expected going up by 4).

Item: ar-190
Task: ar-190

https://claude.ai/code/session_01AWkPssJ1GuZfnqeQ8Epbvj

The board row asked for three things. The Forgejo runner rows already landed in #520, so this PR covers what was still missing. - **Forgejo pool counts.** The exporter now emits `github_runner_pool_expected` / `_online` for `pool="forgejo"` as one `host="k3s"` row. Expected is the runner Deployment's replicas x the ConfigMap's capacity. A runner that is not ready, or a pod stuck Pending, now turns ci/pools warn and counts in `cc:ci_online` / `cc:ci_expected`. `runner-reader-rbac.yaml` gets `get` on that one Deployment. - **api_ok in ci/pools.** When a runner source fails, `pool_online` is absent and the short-pool count came back empty, so ci/pools read ok while blind. It now goes to 1 when any `api_ok{kind="runners"}` is 0, or when no runner source reports at all. - **cc:host_hot{host}.** 0 ok, 1 over 90C for 10m, 2 over 95C for 2m. Those are the NodeCpuHot and NodeCpuCritical thresholds and hold times, so the board marks the same machine the alert names. A new `machines/thermal` component reads it. assumed: Forgejo pool is one `host="k3s"` row, because the pods float between nodes and no node has an expected size. assumed: the workstation is left out of cc:host_hot, because its 7900X runs at 95C by design and the fleet_thermal watch already judges it. assumed: no `cc:red_now` row for a hot host, because NodeCpuCritical already pages it. Checks run locally: - `test_exporter.py`: 63 tests OK, 1 of them new, plus pool-row assertions added to the unreadable-runners test. - `scripts/test-prometheus-rules.sh` in alpine with promtool: all suites SUCCESS, with 4 new command-center cases. Negative control: with the api_ok clauses removed and the 90C line moved, 3 expectations failed. Then I restored both. - check-fleet-roster, check-runner-roster, test_governor, check-ha-packages, check-secret-store: all ok. Not verified: live values after Flux applies (`github_runner_pool_online{pool="forgejo"}`, and `cc:ci_expected` going up by 4). Item: ar-190 Task: ar-190 https://claude.ai/code/session_01AWkPssJ1GuZfnqeQ8Epbvj
feat(ci): Forgejo pool counts, cc:host_hot, api_ok in ci/pools
All checks were successful
checks / zomboid-scripts (pull_request) Successful in 5s
checks / ci-disk-prune (pull_request) Successful in 5s
checks / fleet-roster (pull_request) Successful in 8s
checks / kustomize-builds (pull_request) Successful in 4s
checks / prometheus-rules (pull_request) Successful in 8s
2a5d25a138
- exporter: github_runner_pool_expected/online for pool="forgejo" (host="k3s"), expected = runner Deployment replicas x capacity; RBAC to get that Deployment.
- ci/pools warns when a runner source reads api_ok=0 or none reports: pool_online is absent then, so it read ok blind.
- cc:host_hot{host} 0/1/2 on NodeCpuHot/NodeCpuCritical lines and holds, workstation left to fleet_thermal; machines/thermal component reads it.

Item: ar-190
Task: ar-190

Claude-Session: https://claude.ai/code/session_01AWkPssJ1GuZfnqeQ8Epbvj
All checks were successful
checks / zomboid-scripts (pull_request) Successful in 5s
checks / ci-disk-prune (pull_request) Successful in 5s
checks / fleet-roster (pull_request) Successful in 8s
checks / kustomize-builds (pull_request) Successful in 4s
checks / prometheus-rules (pull_request) Successful in 8s
This pull request can be merged automatically.
This branch is out-of-date with the base branch
You are not authorized to merge this pull request.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin feat/ci-forgejo-pool-host-hot-api-ok:feat/ci-forgejo-pool-host-hot-api-ok
git switch feat/ci-forgejo-pool-host-hot-api-ok

Merge

Merge the changes and update on Forgejo.

Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.

git switch master
git merge --no-ff feat/ci-forgejo-pool-host-hot-api-ok
git switch feat/ci-forgejo-pool-host-hot-api-ok
git rebase master
git switch master
git merge --ff-only feat/ci-forgejo-pool-host-hot-api-ok
git switch feat/ci-forgejo-pool-host-hot-api-ok
git rebase master
git switch master
git merge --no-ff feat/ci-forgejo-pool-host-hot-api-ok
git switch master
git merge --squash feat/ci-forgejo-pool-host-hot-api-ok
git switch master
git merge --ff-only feat/ci-forgejo-pool-host-hot-api-ok
git switch master
git merge feat/ci-forgejo-pool-host-hot-api-ok
git push origin master
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
kblack0610/home-config!616
No description provided.