railiance-forge/workplans/RFORGE-WP-0002-forge-resource-economics-evidence.md
tegwick 35dbe4dd42
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 1s
Publish Forge resource economics evidence
Assistant: codex
Assistant-Model: gpt-5.6-sol
Assistant-Session: 01a02669-87ee-7a31-b111-edc95a16e0fa
2026-08-22 12:34:25 +02:00

118 lines
4.3 KiB
Markdown

---
id: RFORGE-WP-0002
type: workplan
title: "Publish Forgejo resource economics evidence"
domain: financials
repo: railiance-forge
status: finished
owner: codex
topic_slug: railiance
created: "2026-08-11"
updated: "2026-08-22"
related:
- RESOURCE-WP-0003
- ADR-0008
state_hub_workstream_id: "72f935a5-d921-48a4-96e4-2365556c7374"
---
# RFORGE-WP-0002 — Forgejo resource economics evidence
## Goal
Provide the workload-owned demand, utilization, operations, and allocation
evidence for `resource:railiance:forgejo`, which supplies source and package
infrastructure to Helix Forge and the wider federation. Origin:
`RESOURCE-WP-0003-T04` delegated evidence gap.
Measure the live Gitea-compatible Helm workload
(`deployment/forgejo-gitea` on `reef-railiance`). Forgejo is the
migration target, not a second live product. Keep the resource id
`resource:railiance:forgejo`.
This id uses the historical `RAILIANCE-WP-` prefix (collides with other
ownership repos). New forge workplans use `FORGE-WP-`. Do not change
this file's `id` or hub UUID.
Do not add a public metrics or economics endpoint (ADR-0008). Collect
in-cluster or via the operator tunnel. Existing public Forgejo HTTPS is
a separate granted surface, not this plan. Do not treat
`environment: production` in resource-control as ADR-0006
`production-approved`.
## T01 — Measure Forgejo demand and utilization
```task
id: RFORGE-WP-0002-T01
status: done
priority: high
state_hub_task_id: "7048e354-0844-4f6c-aeaa-acf188b04ce2"
```
Record resource requests/limits and observed CPU/memory, repository and package
storage use/growth, database storage, runner capacity/activity, backup volume,
and material network traffic using stable units and timestamps.
Done when resource-control can forecast capacity and identify saturation or
idle capacity without accessing repository content or credentials.
**Outcome (2026-08-22):** `make forge-observe REMOTE=railiance01` publishes a
timestamped, versioned observation for deployment requests/limits and observed
CPU/memory, PVC and database capacity, shared/runner storage usage, recovery
posture, and unavailable axes. It reads neither repository contents nor Secret
surfaces.
## T02 — Declare service objectives and operations labor
```task
id: RFORGE-WP-0002-T02
status: done
priority: high
state_hub_task_id: "643c2393-2ee5-4264-972c-04c3b358dc86"
```
Record availability, recovery, retention, and performance requirements plus
setup and recurring operator activities. Separate forge, registry, runner,
database, backup, upgrade, and incident labor where evidence permits.
Done when total-cost and optimization cases can preserve the forge's service
constraints and labor assumptions.
**Outcome (2026-08-22):** the service-objective and labor evidence file names
the availability, restore, retention, performance, operational, upgrade, and
incident dimensions. Unknown targets and hours remain explicit nulls rather
than invented estimates.
## T03 — Publish shared-consumer allocation evidence
```task
id: RFORGE-WP-0002-T03
status: done
priority: medium
state_hub_task_id: "498cc0c7-ba07-4e7f-a0ef-2e6b34bef04c"
```
Define explainable candidate drivers for source, package, and runner use across
Helix Forge, Coulomb, Railiance, and future tenants. Preserve shared overhead
and unattributed residuals; do not implement customer billing.
Done when a versioned driver report can feed resource-control allocation
without making the forge repository authoritative for booked cost.
**Outcome (2026-08-22):** `forge-raw-drivers-v1` proposes repository count,
package bytes, and runner job minutes, preserves all current use as an
unattributed residual, and assigns method selection to `resource-control`.
## Acceptance
- [x] Demand and utilization include storage, compute, runner, and backup axes.
- [x] Service objectives and labor assumptions are explicit.
- [x] Shared allocation evidence exposes residuals and provenance.
## Completion evidence
- `python3 -m unittest discover -s tests -p 'test_*.py' -v`: 1 test passed.
- Live read-only capture:
`docs/evidence/resource-railiance-forgejo/observations/20260822T102256Z.json`.
- Current observation records 2,377,375,744 forge data bytes, 247,693,312
runner data bytes, healthy single-instance CNPG state, continuous archiving,
and no Forge database Backup/ScheduledBackup or restore-drill evidence.