A simple 'Hello World' flask app listening on 0.0.0.0:8888
Build and run on docker with
$ cd app/
$ docker build -t hello_world .
$ docker run -dp 8888:8888 -t hello_world
Image can be push to a container registry
Creates EKS cluster on AWS.
Inputs | Default |
---|---|
az_count | 2 |
cidr_block | "10.0.0.0/16" |
cluster_name | "Hello_World_Cluster" |
cluster_desired_size | 2 |
cluster_max_size | 4 |
cluster_min_size | 2 |
Creates ECR config secret and AWS LB Ingress controller
Deploys AWS internet facing ALB that directs traffic into the cluster
Deploys K8s Node Port Service that directs traffic into Hello_World deployment pods
Deploys K8s Deployment set of Hello_World app image from AWS ECR
Actions Secrets:
- AWS_ACCESS_KEY_ID
- AWS_SECRET_ACCESS_KEY
- CLUSTER_NAME
Builds Hello_World image and push it to AWS ECR
Triggers:
- Changes on app directory
- Manual trigger
Action flow:
- Checkout this repository
- Configure AWS credentials (with AWS secrets)
- Login to ECR registry
- Build and push image to ECR
Deploys the K8s manifests into EKS cluster
Triggers:
- Changes on k8s directory
- Manual trigger
Action flow:
- Checkout this repository
- Configure AWS credentials (with AWS secrets)
- Setup kubeconfig for EKS cluster management
- Apply manifest and get app URL
- Output URL on job summery