feat(runtime): enforce governed mutation boundaries
Assistant: codex Assistant-Model: gpt-5.6-sol Assistant-Session: 01a06ba0-10aa-7ea0-b20a-4f3fac39efe9
This commit is contained in:
parent
e3c6124e22
commit
20e6f381f6
28 changed files with 1068 additions and 154 deletions
|
|
@ -3,6 +3,21 @@
|
|||
Single shared harness instance on **railiance01**. Secrets stay on the host
|
||||
(Lanes 2–3); the container image is the portable runtime package.
|
||||
|
||||
## Supported runtime topology
|
||||
|
||||
The authoritative production runtime is the railiance01 user service
|
||||
`rein-aharness-claim-loop.service`. It owns the configured repository
|
||||
checkouts, private runtime state, worker credential, lease heartbeats, and
|
||||
signal-driven shutdown behavior.
|
||||
|
||||
The Kubernetes Deployment is explicitly labeled `packaging-smoke` and runs
|
||||
`sleep infinity`. It proves that the image can be scheduled with its hardened
|
||||
container settings; it is not ready to claim work and is not a failover worker.
|
||||
Do not give it an Activity Core worker credential or scale it as execution
|
||||
capacity. Promoting Kubernetes requires a separate reviewed cutover with real
|
||||
workspace, credential, repository-lock, Glas/sandbox, shutdown, and recovery
|
||||
semantics.
|
||||
|
||||
> **Renamed from agent-harness (HARNESS-WP-0002-T02) — cutover done
|
||||
> 2026-07-26.** Railiance now runs `rein-aharness` end to end: image tag,
|
||||
> k8s namespace, CLI command, Python package, host secrets dir, and
|
||||
|
|
@ -48,6 +63,9 @@ Single shared harness instance on **railiance01**. Secrets stay on the host
|
|||
- Lane 3 AppRole under `~/.local/rein-aharness/approle-binky-mail`
|
||||
- `source ~/.local/rein-aharness/env`
|
||||
- Hub: `http://127.0.0.1:18000` (ops-bridge) or in-cluster `state-hub.state-hub.svc`
|
||||
- While profile-absent tenant definitions remain, set a reviewed ISO expiry in
|
||||
`AGENT_HARNESS_LEGACY_APPROACHES_UNTIL`. The checked-in example expires
|
||||
2026-12-31; missing or expired values refuse compatibility dispatch.
|
||||
|
||||
## Build & load image (workstation → railiance01)
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
# Long-lived instance placeholder until T03 task intake polls issue-core.
|
||||
# Keeps one ready replica with harness CLI + git tools; no LLM session here.
|
||||
# Packaging-smoke placeholder only. The supported production runtime is the
|
||||
# railiance01 user service; this Deployment never claims or executes work.
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
|
|
@ -8,6 +8,8 @@ metadata:
|
|||
labels:
|
||||
app.kubernetes.io/name: rein-aharness
|
||||
app.kubernetes.io/part-of: rein-aharness
|
||||
app.kubernetes.io/component: packaging-smoke
|
||||
rein-aharness.railiance.io/runtime-role: packaging-smoke
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
|
|
@ -18,6 +20,8 @@ spec:
|
|||
labels:
|
||||
app.kubernetes.io/name: rein-aharness
|
||||
app.kubernetes.io/part-of: rein-aharness
|
||||
app.kubernetes.io/component: packaging-smoke
|
||||
rein-aharness.railiance.io/runtime-role: packaging-smoke
|
||||
spec:
|
||||
securityContext:
|
||||
fsGroup: 10001
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ AGENT_HARNESS_OPS_LABELS=automated
|
|||
AGENT_HARNESS_OPS_LABELS_MODE=any
|
||||
AGENT_HARNESS_OPS_LEASE_SECONDS=900
|
||||
AGENT_HARNESS_CLAIM_INTERVAL=30
|
||||
AGENT_HARNESS_LEGACY_APPROACHES_UNTIL=2026-12-31
|
||||
AGENT_HARNESS_REPO_MAP={"freedom-intelligence":"/home/tegwick/freedom-intelligence","binky-control":"/home/tegwick/binky-control"}
|
||||
AGENT_HARNESS_REPO_ROOTS=/home/tegwick:/home/tegwick/work
|
||||
LLM_CONNECT_URL=k8s://activity-core/llm-connect:8080
|
||||
|
|
|
|||
|
|
@ -9,6 +9,8 @@ Type=simple
|
|||
WorkingDirectory=%h/rein-aharness
|
||||
Environment=PYTHONUNBUFFERED=1
|
||||
Environment=KUBECONFIG=/etc/rancher/k3s/k3s.yaml
|
||||
# Temporary profile-absent compatibility; remove after the four tenant migrations.
|
||||
Environment=AGENT_HARNESS_LEGACY_APPROACHES_UNTIL=2026-12-31
|
||||
# Ensure kubectl is available for k8s:// URL resolution in rein-aharness-claim
|
||||
Environment=PATH=/usr/local/bin:/usr/bin:/bin:%h/bin
|
||||
# Wrapper loads claim-loop.env (JSON-safe) and resolves k8s:// ClusterIPs
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue