A repository containing infrastructure components described as terraform modules. Each folder represents an infrastructure component containing module files.
A terraform module used to create a managed Kubernetes cluster on AWS EKS. Read the AWS docs on EKS to get connected to the k8s dashboard
- You've created a Virtual Private Cloud and subnets where you intend to put the EKS resources
- You want the solution of an admin bastion host in a public subnet while the EKS Instances are in private
- You want the option of a less secure solution without a bastion host and the EKS Instances in public subnets
- You want zero-downtime deployment for any change to the bastion on EKS worker Instances
- terraform command line tool used for provisioning infrastructure resources. Version 0.11 and above but below 0.12 for now.
The repository is composed of module directories, such as eks
and within it an
examples folder that demonstrates the directory and filestructure in which the
modules should be used in another repository.
The modules described here will use semantic versioning, i.e. a versioning
scheme of the format MAJOR.MINOR.PATCH
.
MAJOR
version when an incompatible API change is madeMINOR
version when functionality is added in abacward-compatible mannerPATCH
version when bacward-comaptible bug fixes are made
After updating your Terraform code to use a new version, you need to run
terraform get -update
or
terraform init
Code formatting and documentation for variables and outputs is generated using terraform-docs
In the future all modules contained in this repository will be written for terraform 0.12 version as well, on a separate branch. Tests will also be written for each of the modules and the modules will be optimised to become more configurable.