This project is a direct spin-off from the main Sales Order System 2.0 project. Whereas that project showcases the theme of "Application Development" - this project demonstrates in particular the Infrastructure as Code concept of Infrastructure Provisioning.
This project show an alternative infrastructure platform to run the Sales Order System application. This particular project provisions a Kubernetes Cluster to manage a series of Docker Containers instead of running Docker Containers directly within EC2 instances as demonstrated in this sister project - Sales Order System 2.0: Infrastructure (Docker on EC2).
This project uses Terraform to provision a Kubernetes Cluster and a set of Worker Nodes to run inside the AWS Cloud using AWS's managed Kubernetes service (EKS).
Require to provision the IAM roles required for creating both the EKS cluster and the EKS worker node groups:
EKS Cluster Roles
cd mgmt/roles/cluster-roles/
terraform init -backend-config=../../../config/backend.hcl
terraform plan
terraform apply
Worker Node Group Roles
cd mgmt/roles/worker-group-roles/
terraform init -backend-config=../../../config/backend.hcl
terraform plan
terraform apply
Require to create the App Network (VPC, Subnets etc) first. For simplicity, I've only provisioned a VPC with 3 Public Subnets with a mandatory Internet Gateway for access to/from the public internet.
See live/[environment]/app-network/README.md
See live/[environment]/eks-cluster/README.md
See live/[environment]/eks-workder-node-group/README.md