| name | deploy-prod |
| description | Deploy services to the prod EKS namespace via ArgoCD (manual sync) with safety checks |
| disable-model-invocation | true |
| argument-hint | [service|all] |
/deploy-prod [service|all]
Deploy services to the petclinic-prod namespace with extra safety checks.
Arguments
service — Specific service to deploy (e.g., config-server, api-gateway) or all
- Default:
all
Steps
-
Pre-deployment checks:
-
Explicit confirmation required:
Ask the user: "You are deploying to PRODUCTION (petclinic-prod). This will affect live services. Confirm?"
Do NOT proceed without explicit "yes" from the user.
-
If ArgoCD is installed (standard path):
- Show what ArgoCD will sync (diff):
argocd app diff {service}-prod || true
- all: Sync services one at a time (sequential, not bulk):
argocd app sync config-server-prod && argocd app wait config-server-prod --timeout 180
argocd app sync discovery-server-prod && argocd app wait discovery-server-prod --timeout 180
for svc in api-gateway customers-service visits-service vets-service genai-service admin-server; do
argocd app sync ${svc}-prod && argocd app wait ${svc}-prod --timeout 180
done
- specific service: Sync that service:
argocd app sync {service}-prod
argocd app wait {service}-prod --timeout 180
- If a service fails, STOP and report — do not continue to the next service.
-
If ArgoCD is NOT installed (bootstrap path):
- Apply namespace (idempotent):
kubectl apply -f k8s/base/namespaces.yaml
- Sequential deployment (one service at a time, verify each):
helm upgrade --install {service} helm/petclinic-service/ \
-f helm-values/{service}.yaml \
-f helm-values/prod.yaml \
-n petclinic-prod --create-namespace
kubectl rollout status deployment/{service} -n petclinic-prod --timeout=180s
- If a service fails, STOP and report — do not continue to the next service.
-
Startup order (when deploying all):
- config-server → wait for ready
- discovery-server → wait for ready
- All remaining services (one at a time)
-
Post-deployment verification:
kubectl get pods -n petclinic-prod -o wide
kubectl get svc -n petclinic-prod
-
Show a deployment summary:
- Services deployed
- Pod status (Running/Pending/CrashLoopBackOff)
- Any issues encountered
Important
- PRODUCTION deployment — extra caution required
- ArgoCD prod apps require manual sync (no auto-sync)
- Always show diff before syncing
- Always get explicit user confirmation
- Deploy sequentially, verify each service before the next
- If any service fails, STOP immediately — do not cascade failures
- Suggest running
/smoke-test prod after successful deployment