Cloud-native AI application deployed on AWS EKS using Terraform, Github Actions CI/CD, ArgoCD GitOps, and observability via Prometheus, Grafana.
- Overview
- Architecture
- Technology Stack
- Repository Structure
- Prerequisites
- Getting Started
- CI/CD Pipeline
- Acknowledgments
SmartPath finder AI is a production-grade cloud-native platform running on AWS EKS and managed through Terraform, GitHub Actions, and ArgoCD GitOps. The project demonstrates modern DevOps practices including Infrastructure as Code (IaC), GitOps workflows, automated CI/CD, secrets management, Kubernetes-native observability, and scalable application deployment.
Key features:
- Infrastructure provisioning with Terraform
- GitOps deployment model using ArgoCD App-of-Apps
- Automated CI/CD pipelines with GitHub Actions
- Kubernetes-native observability with Prometheus and Grafana
- External Secrets integration with AWS Secret Manager
- Persistent storage through AWS EBS CSI Driver
- Production-ready EKS architecture
The platform consists of three independent repositories
- Responsible for provisioning AWS infrastructure
- VPC networking
- Amazon EKS cluster
- IAM Policies
- IRSA Roles
- EBS CSI integration
- Storage Classes
- Acts as the single source of truth for Kubernetes resources
- ArgoCD Applications
- App-of-Apps orchestration
- Infrastructure components
- Monitoring stack
- MongoDB deployment
- Application deployment
SmartPath-AI_Application:
- AI application source code
- Docker configuration
- GitHub Actions workflows
3-Tier application architecture Diagram
AWS infrastructure architecture Diagram
| Category | Technologies |
|---|---|
| Cloud | AWS |
| Infrastructure as Code | Terraform |
| Containerization | Docker, EKS |
| GitOps | ArgoCD |
| CI/CD | Github Actions |
| Version Control | GitHub |
| Database | MongoDB |
| Storage | AWS EBS CSI Driver |
| Secrets Management | External Secrets Operator |
| Security | IAM, IRSA, RBAC |
| Networking | Ingress NGINX |
| Application | Java Script, HTML, CSS, Express.js, Bootstrap, EJS |
| Observability | Prometheus, Grafana |
├── Application
│ ├── Dockerfile
│ ├── README.md
│ ├── app
│ │ ├── db.js
│ │ ├── index.html
│ │ ├── index.js
│ │ ├── node_modules
│ │ ├── package-lock.json
│ │ ├── package.json
│ │ ├── public
│ │ └── views
│ ├── docker-compose.yaml
│ ├── mongo-init.js
│ └── nginx
│ ├── errors.txt
│ ├── logs.txt
│ └── nginx.conf
├── GitOps
│ ├── app-servicemonitor.yaml
│ ├── apps
│ │ ├── app-of-apps.yaml
│ │ ├── application.yaml
│ │ ├── database.yaml
│ │ └── infra.yaml
│ ├── database
│ │ ├── dbvalues.yaml
│ │ └── mongodb
│ ├── infra
│ │ ├── ingress-nginx
│ │ ├── ingress.yaml
│ │ ├── sc-ebs-csi-gp3.yaml
│ │ └── secretstore.yaml
│ ├── mongodb-values.yaml
│ ├── monitoring
│ ├── nginx-controller-values.yaml
│ ├── path-finder-ai
│ │ ├── Chart.yaml
│ │ ├── charts
│ │ ├── templates
│ │ └── values.yaml
│ └── prometheus-stack-values.yaml
├── Infrastructure
│ ├── README.md
│ ├── iam-policy.json
│ ├── iam_policy.tf
│ ├── main.tf
│ ├── modules
│ │ ├── ebs-csi-storageclass
│ │ └── network
│ ├── providers.tf
│ ├── terraform.tfvars
│ └── variables.tf
Monitoring
- Prometheus: Metrics collection from application and infrastructure
- Grafana: Custom dashboards for application performance and node monitoring
- Endpoints: /metrics for application monitoring
Dashboards
- Node monitoring and resource utilization
- Application-specific metrics and performance
The project is in progress, more to be updated.