feat(llm): rename inference services dropping 'default' from names

frank-default-large -> frank-large (Dankclaw :7770), frank-default-small ->
frank-small (Dankserver :7770), frank-default-sightsound -> frank-npu
(Dankclaw :7771). Units, env files, serve scripts, deploy-plan mappings,
deploy-remote dispatch (stop/disable old units + relink + enable new), and the
test seams move together. Retired frank-default-npu.* artifacts moved to
scripts/.AGENTTRASH/ (tracked-in-history; ignored on disk).

Served aliases become frank-large / frank-small via --alias; the NPU endpoint
serves the whole FLM registry, so its rename changes no served tags.
This commit is contained in:
Frank
2026-09-03 16:15:43 -07:00
parent 1e491fa69f
commit 69f87c8483
34 changed files with 136 additions and 137 deletions
+37 -33
View File
@@ -90,13 +90,12 @@ service_is_allowed() {
dankclaw:authentik-postgres|dankclaw:authentik-server|\
dankclaw:authentik-worker|dankclaw:authentik-outpost|dankclaw:authentik-outpost-ldap|dankclaw:anubis|\
dankclaw:caddy|dankclaw:homepage|dankclaw:seerr|\
dankclaw:frank-default-large|dankclaw:frank-default-npu|\
dankclaw:frank-default-sightsound|\
dankclaw:frank-large|dankclaw:frank-npu|\
dankserver:romm-mariadb|dankserver:romm-redis|dankserver:romm|\
dankserver:copyparty|dankserver:jellyfin|dankserver:calibre-web|dankserver:plex|dankserver:tautulli|\
dankserver:prowlarr|dankserver:qbittorrent|dankserver:radarr|\
dankserver:sonarr|dankserver:lidarr|dankserver:readarr|\
dankserver:frank-default-small|\
dankserver:frank-small|\
frankbook-pro:gluetun|frankbook-pro:qbittorrent|frankbook-pro:prowlarr|\
frankbook-pro:radarr|frankbook-pro:sonarr|frankbook-pro:lidarr|\
frankbook-pro:readarr)
@@ -182,8 +181,9 @@ add_pending_services() {
continue
fi
[[ -n "$recorded" && "$recorded" != "$REVISION" ]] || continue
if [[ "$TARGET" == dankclaw && "$service" == frank-default-small ]]; then continue; fi
if [[ "$TARGET" == dankserver && "$service" == frank-default-large ]]; then continue; fi
if [[ "$TARGET" == dankclaw && "$service" == frank-small ]]; then continue; fi
if [[ "$TARGET" == dankserver && "$service" == frank-large ]]; then continue; fi
if [[ "$TARGET" == dankserver && "$service" == frank-npu ]]; then continue; fi
if ! changed="$(python3 scripts/deploy-plan.py --target "$TARGET" \
--repo "$REMOTE_DIR" --base "$recorded" --head "$REVISION")"; then
echo "WARN: unable to compare state for $service; retaining it as pending" >&2
@@ -826,40 +826,45 @@ deploy_anubis() {
wait_container_healthy anubis 60 || return 1
}
# Rename cutover (2026-09-03): frank-default-large -> frank-large,
# frank-default-small -> frank-small, frank-default-sightsound -> frank-npu.
# The legacy units are stopped and disabled before the renamed unit takes the
# port so no legacy process is left holding it; stop/disable of an already
# unloaded legacy unit fail harmlessly and are tolerated.
deploy_llm_large() {
relink_unit frank-default-large
# NPU is intentionally not restarted here. It is a separate, retired
# endpoint and its unit is only relinked when explicitly selected.
run_privileged systemctl stop frank-default-large || true
run_privileged systemctl disable frank-default-large || true
relink_unit frank-large
run_privileged systemctl daemon-reload
run_privileged systemctl enable frank-default-large
run_privileged systemctl restart frank-default-large
wait_for_health frank-default-large http://127.0.0.1:7770/health 1200
run_privileged systemctl enable frank-large
run_privileged systemctl restart frank-large
wait_for_health frank-large http://127.0.0.1:7770/health 1200
}
deploy_llm_small() {
relink_unit frank-default-small
run_privileged systemctl stop frank-default-small || true
run_privileged systemctl disable frank-default-small || true
relink_unit frank-small
run_privileged systemctl daemon-reload
run_privileged systemctl enable frank-default-small
run_privileged systemctl restart frank-default-small
wait_for_health frank-default-small http://127.0.0.1:7770/health 1200
run_privileged systemctl enable frank-small
run_privileged systemctl restart frank-small
wait_for_health frank-small http://127.0.0.1:7770/health 1200
}
# frank-npu is a live serving endpoint (FLM on the XDNA2 NPU), not a
# relink-only unit: it is enabled at boot and restarted on deploy. The health
# gate polls /v1/version, FLM's cheapest always-on route (there is no /health
# route in the FLM server).
deploy_llm_npu() {
relink_unit frank-default-npu
run_privileged systemctl stop frank-default-sightsound || true
run_privileged systemctl disable frank-default-sightsound || true
run_privileged systemctl stop frank-default-npu || true
run_privileged systemctl disable frank-default-npu || true
relink_unit frank-npu
run_privileged systemctl daemon-reload
echo "Relinked frank-default-npu; it was not restarted."
}
# frank-default-sightsound is a live serving endpoint (FLM on the XDNA2 NPU),
# not a relink-only unit: it is enabled at boot and restarted on deploy. The
# health gate polls /v1/version, FLM's cheapest always-on route (there is no
# /health route in the FLM server).
deploy_llm_sightsound() {
relink_unit frank-default-sightsound
run_privileged systemctl daemon-reload
run_privileged systemctl enable frank-default-sightsound
run_privileged systemctl restart frank-default-sightsound
wait_for_health frank-default-sightsound http://127.0.0.1:7771/v1/version 300
run_privileged systemctl enable frank-npu
run_privileged systemctl restart frank-npu
wait_for_health frank-npu http://127.0.0.1:7771/v1/version 300
}
wait_for_health() {
@@ -1045,10 +1050,9 @@ deploy_service() {
;;
anubis) deploy_anubis ;;
seerr) deploy_seerr ;;
frank-default-large) deploy_llm_large ;;
frank-default-small) deploy_llm_small ;;
frank-default-npu) deploy_llm_npu ;;
frank-default-sightsound) deploy_llm_sightsound ;;
frank-large) deploy_llm_large ;;
frank-small) deploy_llm_small ;;
frank-npu) deploy_llm_npu ;;
hermes|hermes-dashboard|hermes-webui) deploy_hermes ;;
romm|romm-mariadb|romm-redis|mariadb|redis) deploy_romm_stack "$service" ;;
jellyfin) deploy_jellyfin ;;