This demo sets up a Kubernetes cluster using AWS Elastic Kubernetes Service and deploys a dockerize web app using Jenkins CI/CD pipeline.
The design folder currently shows the initial whiteboard design and the tech stacks that will be used for the demo.
- Docker image of the app pushed to dockerhub. Repo => dogbern/demoapp:1.0
- Postman screenshots in artifacts folder to test the app works
docker container run --name web -p 5000:5000 dogbern/demoapp:latest
1. Clone repo and execute apply_infra.sh script in the terraform-infra folder. This creates the AWS EKS Cluster environment
2. Execute deploy.sh script
1. Fork this repo and set up Jenkins and execute apply_jenkins.sh script in terraform-jenkins folder. Use the public dns on port 8080 to configure Jenkins.
2. Using blue ocean plugin, create a webhook to the github repo to set up a pipeline. This then deploys the app to your cluster
3. Deploy Prometheus, Prometheus Alert, Grafana and Kubernetes Dashboard by running apply_monitoring.sh script in terraform-monitoring-dashboard folder
1. terraform-monitoring-dashboard/destroy_monitoring.sh
2. terraform-infra/destroy_infra.sh
3. terraform-jenkins/destroy_jenkins.sh
Helm3
Terraform
kubectl
aws cli