Assistant: codex Assistant-Model: gpt-5.6-sol Assistant-Session: 01a02669-87ee-7a31-b111-edc95a16e0fa
118 lines
4.3 KiB
Markdown
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.
|