Files
portainer-core/PROJECT_CLAUDIFICATION_HANDOVER.md
T
2026-02-26 10:35:09 +01:00

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