Guida rapida per deployare il microservizio Potpie sul tuo cluster Kubernetes Lightsail esistente.
- ✅ Lightsail VPS con Kubernetes
- ✅ Redis (
redis-clientovalkey-0) già configurato - ✅ Microservizio BullMQ con monitoring implementato
Vai su GitHub → Settings → Secrets and variables → Actions e aggiungi:
| Secret Name | Valore | Descrizione |
|---|---|---|
DOCKER_PASSWORD |
La tua password Docker Hub | Per push automatico immagini |
POTPIE_API_KEY |
La tua chiave Potpie.ai | API key per il servizio |
KUBE_CONFIG |
Kubeconfig base64 | Configurazione kubectl |
Nota: La password Redis viene automaticamente recuperata dal secret valkey-auth esistente nel tuo cluster.
# Dalla tua VPS Lightsail
kubectl config view --raw | base64 -w 0git add .
git commit -m "Deploy potpie service"
git push origin main- Vai su GitHub → Actions
- Seleziona "Deploy Potpie Service to Lightsail Kubernetes"
- Clicca "Run workflow"
# Controllare i pods
kubectl get pods -l app=potpie-service
# Controllare il servizio
kubectl get svc potpie-service
# Vedere i logs
kubectl logs -l app=potpie-service -f
# Controllare Redis esistente
kubectl get svc | grep -E "(redis|valkey)"# Ottenere IP esterno
EXTERNAL_IP=$(kubectl get svc potpie-service -o jsonpath='{.status.loadBalancer.ingress[0].ip}')
# Test health
curl http://$EXTERNAL_IP/health
# Test queue stats
curl http://$EXTERNAL_IP/queue/stats
# Test metrics (Prometheus)
curl http://$EXTERNAL_IP/metricscurl -X POST http://$EXTERNAL_IP/analyze \
-H "Content-Type: application/json" \
-d '{
"repo": "facebook/react",
"branch": "main",
"question": "Explain the component architecture"
}'# Sostituisci PROJECT_ID con l'ID ritornato
curl http://$EXTERNAL_IP/status/PROJECT_IDIl servizio è configurato per connettersi al tuo valkey-0 esistente con:
- ✅ TLS encryption (porta 6379)
- ✅ Password authentication (dal secret
valkey-auth) - ✅ Cross-namespace communication (
valkey→default) - ✅ Service discovery automatico
# Controllare valkey service
kubectl get svc valkey-service -n valkey
# Test connessione TLS
kubectl run valkey-test --image=valkey/valkey:7.2 --rm -it -- \
valkey-cli -h valkey-service.valkey.svc.cluster.local -p 6379 --tls ping# Verificare valkey pod
kubectl get pods -n valkey
kubectl logs valkey-0 -n valkey
# Verificare service
kubectl get svc valkey-service -n valkey
# Test connessione diretta
kubectl exec -it valkey-0 -n valkey -- valkey-cli --tls ping# Verificare secret valkey
kubectl get secret valkey-auth -n valkey -o yaml
# Verificare password in potpie
kubectl get secret potpie-secrets -o yaml# Verificare immagine su Docker Hub
docker pull digital@pixdata.io/coderide-potpie-service:latest
# Controllare eventi deployment
kubectl describe deployment potpie-service# Logs dettagliati
kubectl logs -l app=potpie-service --previous
# Eventi pod
kubectl describe pods -l app=potpie-service# Status completo
kubectl get all -l app=potpie-service
# Eventi recenti
kubectl get events --sort-by='.lastTimestamp' | tail -20
# Restart deployment
kubectl rollout restart deployment/potpie-service
# Rollback
kubectl rollout undo deployment/potpie-servicehttp_requests_total- Richieste HTTP totaliqueue_jobs_total- Job in coda totaliqueue_job_duration_seconds- Durata jobwebsocket_connections_active- Connessioni WebSocket attive
# Request rate
rate(http_requests_total[5m])
# Queue depth
queue_jobs_waiting + queue_jobs_active
# Success rate
rate(queue_jobs_total{status="completed"}[5m]) / rate(queue_jobs_total[5m])
- Modifica il codice
- Commit e push su main
- GitHub Actions deploierà automaticamente
# Build locale
docker build -t digital@pixdata.io/coderide-potpie-service:latest .
docker push digital@pixdata.io/coderide-potpie-service:latest
# Deploy su Kubernetes
kubectl apply -f kubernetes/
kubectl rollout status deployment/potpie-serviceDopo il deployment avrai:
- ✅ Microservizio Potpie con BullMQ queue system
- ✅ WebSocket real-time per aggiornamenti stato
- ✅ Monitoring Prometheus con metriche custom
- ✅ Auto-scaling con 2 repliche
- ✅ Health checks automatici
- ✅ Deployment automatico via GitHub Actions
GET /- Health check baseGET /health- Health check dettagliatoPOST /analyze- Avvia analisi repositoryGET /status/:projectId- Stato analisiGET /queue/stats- Statistiche codeGET /metrics- Metriche PrometheusWebSocket /- Aggiornamenti real-time
Il servizio è ora pronto per essere integrato con il tuo backend Coderide! 🎉