CI/CD Pipeline for Dockerized Applications Using AWS/Jenkins/Kubernetes. Please replace the Placeholders << >> with your Account Specific details.
- GitHub Repo with Simple Application Code / Jenkinsfile / Docker File / Helm Chart etc.
- GitHub WebHooks triggers the Jenkins Job on Commit to the Repo.
- Unit Testcases are Run and Static application Security Testing (SAST) is carried out with and SonarQube.
- Docker Image is Built/Tagged (Using commit hash) and Pushed to ECR.
- Jenkins CI server Assumes Cross Account Role to connect to EKS account .
- Helm Lint is performed and Helm packaging is done.
- Application deployed in EKS Cluster with Rolling Update Deployment Strategy
- Email and Slack Notification is sent upon Successful/Failure of Jenkins Pipeline
- AWS EC2 Spot instances for Compute (Jenkins/Sonar)
- Route53 used for DNS (mytwocents.click for Jenkins/Sonar and ramsawswork.click for Application in EKS)
- Cross Account Access using IAM Role
- Amazon Certificate Manager (ACM) is used to Secure the Application deployed in EKS
- Zero-Downtime Deployment with EKS
- Readiness/Liveness probes and Pod CPU/Memory Requests and Limits set.
- Ingress enabled in EKS so multiple applications can be hosted and routed seamlessly in EKS
- Pod Autoscaling is Setup with Horizontal Pod Autoscaler (HPA) with Scaling Criteria of CPU-Percentage > 50%