docs: a mesh runbook in place of the finished plan
docs/mesh.md says what runs where (castle-nats, castle-openbao, each node's wildpc-api), how to tell it is healthy, what to do when a node goes stale, the vault is sealed or NATS is down, and the routine tasks -- written from the live config, not the plan. The plan is done and goes; its history is in git, and its unfinished items are tasks in Wild Life. AGENTS.md used the services' old names (wildpc-nats, wildpc-openbao) and pointed at the plan for operations; it now names castle-* and points here.
This commit is contained in:
@@ -260,7 +260,7 @@ resolve through a backend selected by the **`secrets:` block in `wildpc.yaml`**
|
||||
```yaml
|
||||
secrets:
|
||||
backend: openbao # or `file` (default)
|
||||
addr: https://wildpc-openbao.<domain>:8200
|
||||
addr: https://castle-openbao.<domain>:8200
|
||||
mount: wildpc # KV-v2 mount
|
||||
token_secret: OPENBAO_ROOT_TOKEN # vault token, read from a file
|
||||
node_prefix: nodes/<host> # optional: per-node overrides
|
||||
@@ -310,8 +310,8 @@ a service public unless it authenticates or is meant to be open.
|
||||
|
||||
## 8. Mesh — multi-node coordination (opt-in)
|
||||
|
||||
Runs on **NATS JetStream** (`wildpc-nats`, TLS + token). Enable via env on
|
||||
`wildpc-api`: `WILDPC_API_NATS_ENABLED=true`, `WILDPC_API_NATS_URL=tls://wildpc-nats.<domain>:4222`,
|
||||
Runs on **NATS JetStream** (`castle-nats`, TLS + token). Enable via env on
|
||||
`wildpc-api`: `WILDPC_API_NATS_ENABLED=true`, `WILDPC_API_NATS_URL=tls://castle-nats.<domain>:4222`,
|
||||
`WILDPC_API_NATS_TOKEN=${secret:NATS_TOKEN}`. Each node publishes its
|
||||
(secret-stripped) registry to a JetStream **KV** bucket, renews a **presence**
|
||||
key, and watches for peers; remote deployments surface as `manager: none`
|
||||
@@ -324,7 +324,7 @@ Inspect + drive from the CLI: **`wildpc mesh status`** / **`wildpc mesh nodes`**
|
||||
**`wildpc mesh config list|get|set`** (or `GET /mesh/status`, `/nodes`,
|
||||
`/mesh/config`). Modules: `wildpc_api.nats_client`, `.mesh`, `.mesh_gateway`,
|
||||
`.mdns`; secrets via `core` `secret_backends` (file default, OpenBao opt-in).
|
||||
→ Full history + operations: **`docs/fleet-mesh-plan.md`**.
|
||||
→ Operations — health, a stale node, a sealed vault, adding a node: **`docs/mesh.md`**.
|
||||
|
||||
---
|
||||
|
||||
@@ -336,6 +336,7 @@ Inspect + drive from the CLI: **`wildpc mesh status`** / **`wildpc mesh nodes`**
|
||||
| Why wildpc is shaped this way | **`docs/design.md`** |
|
||||
| DNS resolution + the two TLS modes, acme recipe | **`docs/dns-and-tls.md`** |
|
||||
| Public exposure (cloudflared) one-time setup | **`docs/tunnel-setup.md`** |
|
||||
| Mesh operations: health, stale nodes, sealed vault, adding a node | **`docs/mesh.md`** |
|
||||
| Writing FastAPI services | **`docs/stacks/python-fastapi.md`** |
|
||||
| Writing CLI tools | **`docs/stacks/python-cli.md`** |
|
||||
| Writing React/Vite frontends | **`docs/stacks/react-vite.md`** |
|
||||
|
||||
Reference in New Issue
Block a user