.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?)"