Udacity AWS DevOps Capstone project
This capstone project showcases the use of several CI/CD tools and cloud services covered in the program Udacity - AWS Cloud DevOps Engineer.
This project “operationalize” a sample python/flask
demo app “hello”, using CircleCI and
a Kubernetes(K8S) cluster deployed in AWS EKS(Amazon Elastic Kubernetes Services):
All the project’s tasks are included in a Makefile, which uses several shell scripts stored in the
bin directory.
Using a CI/CD approach, we build a Docker image and then run it in a Kubernetes cluster.
The project includes the following main tasks:
make setup
make install
make lint
make eks-create-cluster
make k8s-deployment
make rolling-update
make eks-delete-cluster
The CirclCI pipeline(config.yml) will execute the following steps automatically:
make setup
make install
make lint
To verify that the app is working, write your deployment’s IP into your browser using port 80, likehttp://localhost:80
or http://LOAD_BALANCER_IP:80
(according to your environment).
Alternatively, you can use curl
: curl localhost:80
or curl LOAD_BALANCER_IP:80
The project uses circleci/docker orb,
so to be able to build
and publish
your images, you need to set up the following environment
variables in your CircleCI project with your DockerHub account’s values:
The following shell scripts are invoked from the Makefile