Kubernetes Deployment
Deploy Hellcat to Google Kubernetes Engine (GKE)
Prerequisites
- • GCP account with billing enabled
- • gcloud CLI installed
- • kubectl installed
- • Docker installed
Environment Setup
System administrators should configure ~/.hellcatenv for deployment:
# ~/.hellcatenv
export GOOGLE_APPLICATION_CREDENTIALS="${HOME}/.config/gcloud/hellcat-ci-key.json"
export GCP_PROJECT="hellcat-ai-prod"
export KUBECONFIG="${HOME}/.kube/hellcat-kubeconfig"
export CLUSTER_NAME="hellcat-cluster"
export CLUSTER_REGION="us-central1"
export DOCKER_REPO="us-central1-docker.pkg.dev/hellcat-ai-prod/hellcat-images"
# Load with:
source ~/.hellcatenvInfrastructure
GKE Cluster
- • Name: hellcat-cluster
- • Region: us-central1 (multi-zone HA)
- • Node Pools: api-pool, controller-pool, runtime-pool, web-pool
Cloud SQL
- • PostgreSQL 15
- • HA configuration with automatic backups
- • Private IP within VPC
Memorystore (Redis)
- • Standard tier (HA)
- • 5GB memory
- • Private IP within VPC
Deployment Process
1. Build Images
source ~/.hellcatenv
# Build
docker build -f deployment/docker/Dockerfile.web -t ${DOCKER_REPO}/web:latest .
docker build -f deployment/docker/Dockerfile.api -t ${DOCKER_REPO}/api:latest .
# Push
docker push ${DOCKER_REPO}/web:latest
docker push ${DOCKER_REPO}/api:latest2. Create Secrets
# Database credentials kubectl create secret generic hellcat-db-credentials \ --from-literal=connection-string="postgresql://..." \ -n hellcat # Application secrets kubectl create secret generic hellcat-secrets \ --from-literal=jwt-secret="..." \ -n hellcat
3. Deploy
# Apply manifests kubectl apply -k k8s/overlays/production/ # Watch rollout kubectl rollout status deployment/hellcat-api -n hellcat kubectl rollout status deployment/hellcat-web -n hellcat # Flux reconcile (if using Flux) flux reconcile kustomization hellcat
4. Verify
# Check pods kubectl get pods -n hellcat # Test endpoints curl https://hellcat.pyrosec.gg/health curl https://hellcat.pyrosec.gg/docs
Services
- • hellcat-api: Port 3000, 2 replicas (HA)
- • hellcat-web: Port 3000, 3 replicas (HA)
- • hellcat-controller: 1 replica (job orchestration)
- • hellcat-runtime: Dynamic jobs (created per-task)
Monitoring
# View logs kubectl logs -n hellcat -l app=hellcat-api --tail=100 # Follow logs kubectl logs -n hellcat -l app=hellcat-api -f # Describe pod kubectl describe pod <pod-name> -n hellcat
☁️ Production Ready
Hellcat is designed for production deployment on GKE with HA, auto-scaling, and enterprise security. Use ~/.hellcatenv to manage deployment credentials and configuration.