Kubernetes Reference Architecture
This repository contains rather complete infrastructure configurations where Terragrunt is used to manage infrastructure for Kubernetes Workshop.
Where infrastructrue currently deployed
- Install Terraform 0.12 or newer
- Install Terragrunt 0.19 or newer
- Install KubeCtl
- Optionally, install pre-commit hooks to keep Terraform formatting and documentation up-to-date.
If you are using macOS you can install all dependencies using Homebrew:
$ brew bundle
Navigate through layers to review and customize values inside inputs
block.
There are two ways to manage infrastructure (slower&complete, or faster&granular):
- Region as a whole (slower&complete). Run this command to create infrastructure in all layers in a single region:
$ cd master/us-east-1
$ terragrunt apply-all
- As a single layer (faster&granular). Run this command to create infrastructure in a single layer (eg,
rds_2
):
$ cd master/us-east-1/vpc
$ terragrunt apply
How to destroy
$ cd master/us-east-1
$ terragrunt destroy-all
Why infrastructure deployed into a
N.Virginia|us-east-1
?
To make sure all the services are fully supported.
Why using terragrunt instead of vanilla Terraform?
Most of the advantages described in this article
IS there is any reference infrastructure with Terragrunt?
What is the thumbprint for
us-east-1
region?
9e99a48a9960b14926bb7f3b02e22da2b0ab7280
$ make help
setup Setup dependencies
hooks install pre commit.
validate Validate files with pre-commit hooks
changelog Update changelog
release Create release version
create Deploy multiple Terraform modules in a single command
destroy Undeploy all the Terraform modules
kubeconfig Pull kubeconfig credentials for the cluster