ProdPreview
Designed a GitOps pull-request preview pipeline for a multi-service monorepo using GitHub Actions, Docker, Argo CD, Terraform, and Helm to provision isolated EKS namespaces with SHA-pinned images before merge.

- Kubernetes
- Argo CD
- Terraform
- Helm
- Docker
- AWS EKS
- GitHub Actions
Overview
Production-like preview environments for every PR. This repo deploys a React frontend, Node.js API, and Python worker into per-PR Kubernetes namespaces using Argo CD + GitHub Actions.
Core idea: PR opens → build/push images tagged by PR head SHA → Argo CD deploys pr- namespace → review in a production-like cluster → merge to main.
How It Works
Terraform creates your AWS network, database, and EKS cluster. (infra/terraform/)
Docker builds images for each service and pushes to Docker Hub.
Argo CD deploys per-PR environments using the umbrella chart in deploy/helm/app.
Repo Layout
services/api/ Node.js + Express API
services/frontend/ React + Vite UI + Express server (/health.json)
services/worker/ Python worker that polls the API
deploy/helm/services/ Source Helm charts for each service
deploy/helm/app/ Umbrella chart used by Argo CD (vendored subcharts in charts/)
deploy/argocd/ Argo CD ApplicationSet for PR previews
infra/terraform/ AWS VPC + EKS + RDS
sync-helm-charts.sh Sync service charts into the umbrella chart vendored under deploy/helm/app/charts/

Written up in preyashyadav/ProdPreview