feat: add rmgr rapp init/validate/pin-image

Prove the user-engine wrapper shape and give Repo Manager a
secret-free scaffolder that refuses invented rails and live-contract
overwrites.
This commit is contained in:
tegwick 2026-08-18 12:39:24 +02:00
parent 77452492ec
commit 8b87b17980
5 changed files with 397 additions and 5 deletions

View file

@ -54,7 +54,7 @@ work breakdown for later scaffolder phases.
```task
id: RMGR-WP-0006-T02
status: todo
status: done
priority: high
state_hub_task_id: "f0e53954-403a-4e2c-b39f-0bab00eed3cc"
```
@ -68,11 +68,15 @@ guide. Validate with
Do not place the rapp (`bound_reefs` stays empty) and do not set public
exposure.
**Result (2026-08-18):** `rapp-user-engine` has the bootstrap set and a
schema-valid `declarations/rapp.yaml` at `declared`. Isolated family
validation: `4 declaration(s) ok`.
## Generate the Kubernetes package skeleton
```task
id: RMGR-WP-0006-T03
status: todo
status: done
priority: high
state_hub_task_id: "3ba6828e-7514-4f4d-a1d3-54134e039f55"
```
@ -87,11 +91,16 @@ pointer in NetKingdom so there is one apply path.
Package type is `manifest-managed-platform-service` unless the rewrite
to Helm is an explicit later decision.
**Result (2026-08-18):** manifests absorbed, Makefile
`render|server-dry-run|deploy|verify-live|rollback` added, NetKingdom
README points here. `make server-dry-run` passes. Restore-drill is a
separate target so completed Jobs are not reapplied.
## Draft platform handoffs
```task
id: RMGR-WP-0006-T04
status: todo
status: done
priority: medium
state_hub_task_id: "0c2846d9-5db2-4b97-becd-0367b5737188"
```
@ -101,11 +110,15 @@ user-engine. Apply them only in the owning repos (`rapp-postgres`,
`railiance-platform`) after those owners accept the draft. This repo
records the request; it does not become the credential home.
**Result (2026-08-18):** `docs/platform-handoffs.md` keeps the dedicated
`user-engine-pg` Cluster and lists OpenBao/delivery/flex-auth
references. No postgres consumer file is added.
## Implement `rmgr rapp` scaffolding
```task
id: RMGR-WP-0006-T05
status: todo
status: done
priority: high
state_hub_task_id: "6cf89776-ff31-4dd1-aa9a-39474fc387aa"
```
@ -119,6 +132,11 @@ the baseline files.
Depends on the shape proven in T02T03 and on `RMGR-WP-0004` scaffolding
ownership.
**Result (2026-08-18):** `rmgr rapp init|validate|pin-image` added.
`init` refuses a `rapp-` workload name and refuses to overwrite an
existing declaration. `validate` runs the family validator against an
isolated sibling root so undeclared engine stubs do not fail the check.
## Residuals
- `rapp-secrets-engine` and `rapp-tenant-engine` remain undeclared stubs;