2.7 KiB
2.7 KiB
Helm Chart Update Summary
Overview
The Helm chart has been updated to deploy a complete dating app with PostgreSQL, backend API, and frontend on Kubernetes.
Architecture
Components Deployed:
-
PostgreSQL StatefulSet - Database for the application
- 1 replica (configurable)
- 10Gi persistent volume
- Headless service for StatefulSet operations
-
Backend Deployment - FastAPI application
- 2 replicas (configurable)
- Exposed via ClusterIP service on port 8000
- Health checks enabled (readiness & liveness probes)
-
Frontend Deployment - React application
- 2 replicas (configurable)
- Exposed via ClusterIP service on port 80
- Health checks enabled (readiness & liveness probes)
Ingresses (2):
-
Backend Ingress
- Host:
api-dateme.dvirlabs.com - Routes to: backend service port 8000
- Host:
-
Frontend Ingress
- Host:
dateme.dvirlabs.com - Routes to: frontend service port 80
- Host:
Domain Configuration
| Component | Domain | Type |
|---|---|---|
| Frontend | dateme.dvirlabs.com | Ingress |
| Backend API | api-dateme.dvirlabs.com | Ingress |
| Database | postgres.dating-app.svc.cluster.local | Internal Service |
Frontend to Backend Communication
The frontend is configured to call the backend via the ingress domain:
- VITE_API_URL:
https://api-dateme.dvirlabs.com
This environment variable is injected via ConfigMap into the frontend deployment.
CORS Configuration
The backend is configured to accept requests from:
http://localhost:5173(dev)http://localhost:3000(dev)http://localhost(dev)https://dateme.dvirlabs.com(production frontend)
Database Connection
Backend connects to PostgreSQL via:
postgresql://dating_app_user:Aa123456@postgres.dating-app.svc.cluster.local:5432/dating_app
Deployment Commands
# Install the chart
helm install dating-app ./helm/dating-app
# Upgrade the chart
helm upgrade dating-app ./helm/dating-app
# With custom values
helm install dating-app ./helm/dating-app -f values-production.yaml
Prerequisites
- Kubernetes Cluster with NGINX Ingress Controller
- DNS Configuration - Point domains to your Kubernetes ingress controller:
dateme.dvirlabs.com→ Ingress IPapi-dateme.dvirlabs.com→ Ingress IP
- SSL/TLS Certificates (optional, configure via annotations)
Notes
- All components are deployed in the
dating-appnamespace - Storage class defaults to cluster default if not specified
- Update
JWT_SECRETin production values - Adjust replica counts and resource limits based on your cluster capacity
- PostgreSQL credentials are in the ConfigMap (use external secrets in production)