This project is for the Udacity Cloud Devops Engineer nanodegree course. It is meant to be submission for the capstone project. This project contains a simple spring boot java app. The goal of this project is to show off what was learned during the nanodegree course. I am making use of Dockerfile, CloudFormation script, Kubernetes, and CircleCI.
- Dockerfile - file used for creating docker image
- app/ - app related files
- .circleci/files/configure-k8.yml - cloudformation script for setting up AWS EKS Cluster
- .circleci/files/k8/ - kubernetes related files for deployment and load balancing
- .circleci/config.yml - CircleCI configuration
- Run
gradle bootJar
for creating the jar - Run
docker build --tag=<name> .
- Run
docker run -p 8080:8080 <name>
After commiting a new change the following will happen.
- Does linting, compiling, and testing.
- Builds jar file
- Builds docker image with the created jar file
- Pushes docker image to AWS ECR
- Deploys K8 using CloudFormation
- Deploys app to K8 (applies deployment and service yaml files, afterwards updates docker image)
- Runs smoke tests (does curl command to newly deployed app)
After applying service.yaml to K8, AWS EKS creates Elastic Load Balancer which can be used to make requests. The same is done inside using smoke tests.