live: heartbeat sync 2026-10-18T16:47:59-07:00 (Refs #11)
This commit is contained in:
1 parent
a550db6027
commit
979e9ef711
173 files changed
+3844
-57
No files matched your search
@@ -0,0 +1,58 @@
|
||||
---
|
||||
name: fleet-service-rename-cutover
|
||||
description: "Rename a Dank-fleet LLM service end-to-end (repo trio, deployer keys, tags, hosts): the 2026-10-10 frank-archon/dragoon/zealot cutover procedure."
|
||||
---
|
||||
|
||||
# Fleet service rename cutover (serverAppConfigs)
|
||||
|
||||
Procedure proven 2026-10-10 renaming the three LLM services to their wire
|
||||
aliases (repo `55f87fc`). For any future full service rename.
|
||||
|
||||
## Repo codemod
|
||||
1. `git mv` every tracked file whose path carries the old token
|
||||
(`frank-<old>` → `frank-<new>`, plus `frank_<old>` bats seams).
|
||||
2. Content sweep over all tracked text files:
|
||||
`git grep -Ilz '' | xargs -0 sed -i` with expressions for
|
||||
`frank-<old>`, `FRANK_<OLD>`, `frank_<old>` → new forms; add the
|
||||
`LLM_<OLD>` / `llm_<old>` / handler-name forms in the same pass.
|
||||
3. Known casualties to record: `scripts/patches/*.patch` context lines get
|
||||
rewritten (patches stop applying byte-exact); historical prose adopts
|
||||
the new name (one service, one name — Frank's rule).
|
||||
4. Fix sed-made-contradictory lore by hand: AGENTS.md Model Config
|
||||
paragraph, any "keeps the old names" sentences. Do NOT enumerate the
|
||||
retired names anywhere — the acceptance test is
|
||||
`git grep -cE '<old forms>'` == 0 (case-insensitive too).
|
||||
5. Rename rollback tags in lockstep (docs quote tag names):
|
||||
`git tag NEW OLD; git tag -d OLD`, push new, delete old refs on origin.
|
||||
6. Sweep the harness config comments too: `~/.omp/agent/models.yml`.
|
||||
|
||||
## Deployer keying (why the sweep is safe)
|
||||
`scripts/deploy-plan.py` SERVICE_ORDER/host sets + `services_for_path`
|
||||
trio mapping; `scripts/deploy-remote.sh` `service_is_allowed` case,
|
||||
`deploy_service` dispatch, `relink_unit <service>` (symlink
|
||||
`/etc/systemd/system/<name>.service` → `scripts/<name>.service`),
|
||||
markers keyed by service name under `~/.local/state/serverAppConfigs/
|
||||
deploy-state/`. `add_pending_services` AUTO-TRASHES markers whose service
|
||||
is retired — no marker surgery needed if you skip a full drain.
|
||||
|
||||
## Host cutover per endpoint (order matters)
|
||||
1. `sudo systemctl stop <old>`; rename `~/logs/frank_<old>.log` → new;
|
||||
`podman rm -f` the old container name(s);
|
||||
`sudo rm` the unit symlink + `multi-user.target.wants/<old>.service`;
|
||||
`sudo systemctl daemon-reload`; trash the marker to
|
||||
`~/.AGENTTRASH/<date>-fleet-rename/` with a NEUTRAL filename.
|
||||
2. `deploy.sh <host> --service <new-name>` (run from the main checkout;
|
||||
refuses on a worktree branch). The handler relinks under the new name,
|
||||
enables, restarts, health-gates.
|
||||
3. Do the harness-default-model endpoint LAST on its host, and never stop
|
||||
an endpoint while a deploy on the other host is approaching its e2e
|
||||
gate (the gate probes the live fleet).
|
||||
|
||||
## Acceptance
|
||||
`/health` 200 + `/v1/models` shows the new id (radiance echoes requested
|
||||
names — verify on `/v1/models` only); unit active+enabled; new container
|
||||
name running; `git grep` zero on every checkout; e2e gate green;
|
||||
Prometheus job up (note: llama.cpp needs `--metrics` in the serve script
|
||||
for the scrape — absence is a pre-existing gap, not a rename regression).
|
||||
Out of scope: retired endpoint names (`frank-medium/small/npu`) and git
|
||||
history — old strings there are expected.
|
||||
Reference in new issue
Block a user