2.8 KiB
2.8 KiB
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:
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:
-
Docker secrets (recommended for Swarm):
secrets: anthropic_api_key: external: true services: tatlock: secrets: - anthropic_api_key environment: - ANTHROPIC_API_KEY_FILE=/run/secrets/anthropic_api_key -
Environment file (simpler but less secure):
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-mcpservice definition (when Phase 2 is ready)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:
# 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