Added comprehensive improvements to ClawdBox for better LLM agent experience: - Tools: Added tree, tmux, htop, strace, file, less for enhanced debugging - Python packages: httpie, pyyaml, requests, black, ipython pre-installed - Persistent caching: pip/npm caches now survive container restarts - Git config persistence: .gitconfig auto-links from /data volume - Shell improvements: colored prompt, aliases (ll, k, dc), 10k line history - Helper scripts: ConfigMap with disk-usage, health-check, clean-workspace, install-tools - Environment variables: TERM, TZ, DEBIAN_FRONTEND for better compatibility - Makefile: Common operations (build, deploy, logs, shell, health-check) - Documentation: Comprehensive README with troubleshooting and workflows Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
81 lines
2.5 KiB
Makefile
81 lines
2.5 KiB
Makefile
.PHONY: build push deploy redeploy logs shell disk-usage clean-cache health-check help
|
|
|
|
IMAGE_NAME=default-route-openshift-image-registry.apps.lab.apilab.us/clawdbox/clawdbox:latest
|
|
NAMESPACE=clawdbox
|
|
SSH_HOST=clawdbox.apps.lab.apilab.us
|
|
SSH_PORT=2222
|
|
SSH_USER=claw
|
|
|
|
help:
|
|
@echo "ClawdBox Makefile - Common Operations"
|
|
@echo ""
|
|
@echo "Build & Deploy:"
|
|
@echo " make build - Build Docker image"
|
|
@echo " make push - Build and push image to registry"
|
|
@echo " make deploy - Deploy all manifests to cluster"
|
|
@echo " make redeploy - Push image and restart deployment"
|
|
@echo ""
|
|
@echo "Operations:"
|
|
@echo " make logs - Stream pod logs"
|
|
@echo " make shell - SSH into container"
|
|
@echo " make disk-usage - Check /data disk usage"
|
|
@echo " make clean-cache - Clear pip/npm caches"
|
|
@echo " make health-check - Run comprehensive health diagnostics"
|
|
@echo ""
|
|
@echo "Debugging:"
|
|
@echo " make describe - Describe deployment"
|
|
@echo " make events - Show namespace events"
|
|
@echo " make restart - Restart deployment (without push)"
|
|
|
|
build:
|
|
docker build -t $(IMAGE_NAME) .
|
|
|
|
push: build
|
|
docker push $(IMAGE_NAME)
|
|
|
|
deploy:
|
|
kubectl apply -f manifests/
|
|
|
|
redeploy: push
|
|
kubectl rollout restart deployment/clawdbox -n $(NAMESPACE)
|
|
@echo "Waiting for rollout to complete..."
|
|
kubectl rollout status deployment/clawdbox -n $(NAMESPACE)
|
|
|
|
restart:
|
|
kubectl rollout restart deployment/clawdbox -n $(NAMESPACE)
|
|
kubectl rollout status deployment/clawdbox -n $(NAMESPACE)
|
|
|
|
logs:
|
|
kubectl logs -f -n $(NAMESPACE) deployment/clawdbox
|
|
|
|
shell:
|
|
ssh -p $(SSH_PORT) $(SSH_USER)@$(SSH_HOST)
|
|
|
|
disk-usage:
|
|
@ssh -p $(SSH_PORT) $(SSH_USER)@$(SSH_HOST) "df -h /data && echo '' && echo 'Top 10 Largest Directories:' && du -h /data 2>/dev/null | sort -rh | head -10"
|
|
|
|
clean-cache:
|
|
@ssh -p $(SSH_PORT) $(SSH_USER)@$(SSH_HOST) "rm -rf /data/.cache/pip/* /data/.cache/npm/* && echo 'Package caches cleared'"
|
|
|
|
health-check:
|
|
@ssh -p $(SSH_PORT) $(SSH_USER)@$(SSH_HOST) "/data/scripts/health-check.sh"
|
|
|
|
describe:
|
|
kubectl describe deployment/clawdbox -n $(NAMESPACE)
|
|
|
|
events:
|
|
kubectl get events -n $(NAMESPACE) --sort-by='.lastTimestamp'
|
|
|
|
status:
|
|
@echo "=== Deployment Status ==="
|
|
@kubectl get deployment -n $(NAMESPACE)
|
|
@echo ""
|
|
@echo "=== Pod Status ==="
|
|
@kubectl get pods -n $(NAMESPACE)
|
|
@echo ""
|
|
@echo "=== Service Status ==="
|
|
@kubectl get svc -n $(NAMESPACE)
|
|
@echo ""
|
|
@echo "=== Route Status ==="
|
|
@kubectl get route -n $(NAMESPACE) 2>/dev/null || echo "No routes found (not on OpenShift?)"
|