This project demonstrates a complete DevOps pipeline from infrastructure provisioning to application deployment using modern DevOps tools.
It follows GitOps principles, where Git is the single source of truth and deployments are automated using Argo CD.
graph TD
A[Developer Push Code] --> B[GitHub Repository]
B --> C[Argo CD GitOps]
C --> D[Kubernetes EKS Cluster]
D --> E[Helm Deployment]
E --> F[Flask App Pods]
F --> G[Service LoadBalancer]
H[Terraform] --> I[AWS Infrastructure]
I --> D
J[Ansible] --> K[Ubuntu DevOps Server]
K --> D
L[Docker] --> M[DockerHub Image]
M --> E
N[Prometheus] --> D
D --> O[Grafana Dashboard]
flowchart LR
Code[Code Change] --> Git[GitHub Push]
Git --> Argo[Argo CD Sync]
Argo --> K8s[Kubernetes Deploy]
K8s --> App[Flask App Running]
App --> Monitor[Prometheus]
Monitor --> Grafana[Grafana Dashboard]
sequenceDiagram
participant Dev as Developer
participant Git as GitHub
participant Argo as Argo CD
participant K8s as Kubernetes
Dev->>Git: Push Code
Git->>Argo: Notify Change
Argo->>K8s: Sync Deployment
K8s->>K8s: Update Pods
- AWS (EC2, EKS)
- Terraform (Infrastructure as Code)
- Ansible (Configuration Management)
- Docker (Containerization)
- Kubernetes (EKS)
- Helm (K8s Packaging)
- Prometheus & Grafana (Monitoring)
- Argo CD (GitOps)
end-to-end-devops-gitops-platform/
βββ terraform/
βββ ansible/
βββ app/
βββ helm/
β βββ flask-app/
βββ argocd/
βββ images/
βββ README.md
βββ .gitignore
cd terraform
terraform init
terraform applycd ansible
ansible-playbook -i inventory.ini playbook.ymldocker buildx build \
--platform linux/amd64 \
-t minabisa90/devops-gitops-flask:v1 \
--push .eksctl create cluster --name devops-gitops-eks
kubectl get nodeshelm install flask-app helm/flask-app
kubectl get podshelm install monitoring prometheus-community/kube-prometheus-stack -n monitoringkubectl apply -f argocd/application.yaml- Infrastructure as Code (Terraform)
- Configuration Automation (Ansible)
- Containerization (Docker)
- Kubernetes Declarative Deployment
- Helm Chart Packaging
- Monitoring & Observability
- GitOps Continuous Deployment
- Built a full DevOps pipeline from scratch
- Automated infrastructure and deployments
- Deployed applications on Kubernetes (EKS)
- Implemented GitOps with Argo CD
- Integrated monitoring using Prometheus & Grafana
- Add CI/CD (GitHub Actions or Jenkins)
- Add Kubernetes Ingress with AWS Load Balancer
- Implement auto-scaling (HPA)
- Secure secrets using AWS Secrets Manager
Mina Bisa
- GitHub: https://github.com/minabisa
- LinkedIn: https://www.linkedin.com/in/mina-bisa/
If you like this project, give it a β on GitHub!








