Files
computer-playbook/roles/svc-ai-litellm/meta/variants.yml
kevinveenbirkenbachandClaude Opus 5 4d1c8c52f5 feat(litellm): give LM Studio a variant that deploys it alone
Variant 0 pinned both local backends on, so LITELLM_CHAT_MODEL always resolved
to an Ollama model and every completion went there. The LM Studio route was
published and never travelled. A third variant turns Ollama off and LM Studio
on, which is the only shape that exercises it, and variant 0 pins LM Studio
literally off so a WordPress round stops co-deploying a backend it never
prompts: 27 apps become 26.

bond drops to 0.5 and that is what makes the variant legal. test_order's
_direct_deps filters services on bond >= 1.0 before building a closure, so at
0.5 LM Studio leaves that computation and the new variant no longer violates
"variant 0 is the maximal deploy footprint". The deploy planner does not filter
on bond — resolve_service_dependency_roles_from_config reads enabled and shared
only — so the variant still deploys it. test_bond_baseline takes its bond < 1
branch, which asks for any variant pinning the flag true rather than variant 0
specifically, and variant 2 supplies it. No suppression and no guard change.

bond < 1 states that the provider is a separate-host partner rather than a
same-host service. Reaching the gateway through LMSTUDIO_BASE_LOCAL_URL, a
container-network hostname, is consistent with that.

Measured against the planner: variant 0 resolves 21 apps without LM Studio,
variant 1 stays at 1, variant 2 resolves 8 apps with LM Studio and without
Ollama, and a WordPress round 0 drops from 27 to 26.

The variant is reachable only when svc-ai-litellm is swept as a primary row and
pinned to it: legacy_resolver clamps a non-primary role to the round index, and
a two-round WordPress job never reaches index 2.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-14 19:25:41 +02:00

35 lines
747 B
YAML

---
# Matrix-deploy variant overrides for this role.
# See docs/contributing/artefact/files/role/variants.md for the file format.
- services:
ollama:
enabled: true
shared: true
lmstudio:
enabled: false
shared: false
postgres:
shared: true
- services:
postgres:
shared: false
ollama:
enabled: false
shared: false # nocheck: variants-static-override backup shared stays literally true
lmstudio:
enabled: false
shared: false # nocheck: variants-static-override backup shared stays literally true
- services:
ollama:
enabled: false
shared: false
lmstudio:
bond: 0.5
enabled: true
shared: true
postgres:
shared: true