103 lines
2.8 KiB
Markdown
103 lines
2.8 KiB
Markdown
# Tatlock Claudification Handover - portainer-core
|
|
|
|
## Context
|
|
|
|
Tatlock (the butler) is being upgraded to use Claude as its primary LLM backend instead of Ollama. This requires infrastructure changes to support the new configuration.
|
|
|
|
**Parent Issue:** See `/mnt/media/Projects/tatlock/PROJECT_CLAUDIFICATION.md`
|
|
|
|
## Impact on portainer-core
|
|
|
|
Portainer-core manages Docker Swarm stacks. The Tatlock stack needs updated configuration.
|
|
|
|
## Required Changes
|
|
|
|
### Priority: High (Required for Claude backend)
|
|
|
|
- [ ] **Update `stacks/agents.yml`** (or wherever Tatlock is defined)
|
|
|
|
Add new environment variables:
|
|
```yaml
|
|
services:
|
|
tatlock:
|
|
environment:
|
|
# Anthropic Configuration (Claude - preferred backend)
|
|
- ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY}
|
|
- ANTHROPIC_MODEL=claude-sonnet-4-20250514
|
|
- PREFER_CLOUD_BACKEND=true
|
|
# Existing Ollama config remains as fallback
|
|
- OLLAMA_HOST=http://ollama:11434
|
|
- OLLAMA_DEFAULT_MODEL=mistral-nemo:latest
|
|
```
|
|
|
|
- [ ] **Configure secrets management**
|
|
|
|
Options:
|
|
1. **Docker secrets** (recommended for Swarm):
|
|
```yaml
|
|
secrets:
|
|
anthropic_api_key:
|
|
external: true
|
|
services:
|
|
tatlock:
|
|
secrets:
|
|
- anthropic_api_key
|
|
environment:
|
|
- ANTHROPIC_API_KEY_FILE=/run/secrets/anthropic_api_key
|
|
```
|
|
|
|
2. **Environment file** (simpler but less secure):
|
|
```yaml
|
|
services:
|
|
tatlock:
|
|
env_file:
|
|
- ./secrets/tatlock.env
|
|
```
|
|
|
|
- [ ] **Update `CONTAINERS.md`**
|
|
- Document new environment variables
|
|
- Note Claude as preferred backend with Ollama fallback
|
|
- Update any API documentation
|
|
|
|
### Priority: Medium (Phase 2 - MCP Server)
|
|
|
|
- [ ] **Add `tatlock-mcp` service definition** (when Phase 2 is ready)
|
|
```yaml
|
|
tatlock-mcp:
|
|
image: git.schweitz.net/jpmschweitzer/tatlock:latest
|
|
command: ["python", "-m", "src.mcp.server"]
|
|
ports:
|
|
- "8778:8778"
|
|
environment:
|
|
- MCP_AUTH_TOKEN=${MCP_AUTH_TOKEN}
|
|
# ... other config
|
|
```
|
|
|
|
### Priority: Low (Optimization)
|
|
|
|
- [ ] **Review resource limits**
|
|
- Claude backend may have different resource profile than Ollama
|
|
- Monitor memory/CPU after deployment
|
|
- Adjust limits if needed
|
|
|
|
## Testing
|
|
|
|
After stack update:
|
|
|
|
```bash
|
|
# Check Tatlock logs for backend selection
|
|
docker service logs tatlock_tatlock 2>&1 | grep -E "claude|backend"
|
|
|
|
# Should see:
|
|
# model_backend_configured backend=claude model=claude-sonnet-4-20250514
|
|
# OR (if no API key):
|
|
# claude_health_check_skipped reason=no_api_key
|
|
# model_backend_configured backend=ollama
|
|
```
|
|
|
|
## Timeline
|
|
|
|
- **Blocking:** Yes - required for production Claude deployment
|
|
- **When to implement:** When ANTHROPIC_API_KEY is available
|
|
- **Effort:** ~1 hour for stack updates, ~30 min for secrets setup
|