Deployment: pal-e-pac
Deployment
Where components run and how they connect. Answers: what runs locally vs. on k8s, and how do they talk to each other?
Deployment notes
- pac CLI + LangGraph run locally as a Python package. No k8s deployment needed. Install via
uv pip install -e ., run viapaccommand (typer entry point). - Ollama is already deployed on k8s with GPU access (Phase 6a of plan-pal-e-platform). Connected via
kubectl port-forward svc/ollama 11434:11434 -n ollama. - MCP servers run as local stdio processes, bridged to LangChain tools via
langchain-mcp-adapters. Same servers used by Claude Code — unchanged. - GPU constraint — GTX 1070 has 8GB VRAM. Qwen3-4B (2.6GB) always fits. Qwen3-8B (5.2GB) fits when the embedding model is paused. Cannot run both simultaneously.
- Claude API is optional — used as the target tier and as a fallback. Multi-tier routing is a graph configuration (swap the model provider node).
- promptfoo runs locally. Evaluates prompts against both Ollama models and Claude API. Same 29 test cases, same configs — tests model output regardless of orchestration framework.
Connection details
| From | To | Method | Endpoint |
|---|---|---|---|
| LangGraph | Ollama | kubectl port-forward | localhost:11434 |
| langchain-mcp-adapters | forgejo-mcp | stdio subprocess | local process |
| langchain-mcp-adapters | pal-e-docs-mcp | stdio subprocess | local process |
| langchain-mcp-adapters | woodpecker-mcp | stdio subprocess | local process |
| forgejo-mcp | Forgejo | Tailscale URL | forgejo.tail5b443a.ts.net |
| pal-e-docs-mcp | pal-e-docs | Tailscale URL | paledocs.tail5b443a.ts.net |
| woodpecker-mcp | Woodpecker | Tailscale URL | woodpecker.tail5b443a.ts.net |
| LangGraph | Claude API | HTTPS (fallback) | api.anthropic.com |
Related
- Project: pal-e-pac
- Domain Model
- Data Flow
- Platform Architecture — underlying k8s cluster