the-right-hard-way-aws
hajowieland/the-right-hard-way-aws/k8s
Terraform code for "Kubernetes The (real) Hard Way (AWS)"
Terraform - Kubernetes The (real) Hard Way on AWS! This little project creates the infrastructure in Terraform for my blog post Kubernetes The (real) Hard Way on AWS. > AWS CDK Python code available 🔗 HERE You can practice creating a multi node K8s Cluster yourself for training purposes or CKA exam preparation. !Alt text Requirements aws-cli Profile Existing AWS Route53 Public Hosted Zone Features _Default values - you can adapt all of them to your needs_ Terraform 0.12 1x VPC, 3x Public Subnets, 3x Private Subnets, Route Tables, Routes 3x Worker Nodes 3x Master Nodes 3x Etcd Nodes 1x Bastion Host Genertes AWS Key Pair for instances Route53 Records for internal & external IPv4 addresses 1x Public LoadBalancer for Master Nodes (external kubectl access) 1x Private LoadBalancer for Master Nod
| Name | Type | Description | Default |
|---|---|---|---|
| aws_key_pair_name | string | AWS Key Pair name to use for EC2 Instances (if already existent) | required |
| hosted_zone | string | Route53 Hosted Zone for creating records (without . suffix, e.g. `napo.io`) | required |
| aws_vpc_cidr | string | VPC CIDR block | "10.23.0.0/16" |
| ssh_public_key_path | string | SSH public key path (to create a new AWS Key Pair from existing local SSH public | "~/.ssh/id_rsa.pub" |
| bastion_size | number | Desired number of EC2 instances for Bastion AutoScalingGroup | 1 |
| master_instance_type | string | EC2 instance type for K8s master instances | "t3a.small" |
| aws_region | string | AWS region (e.g. `us-east-1` => US North Virginia) | "us-east-1" |
| aws_profile | string | AWS cli profile (e.g. `default`) | "default" |
| worker_min_size | number | Minimum number of EC2 instances for K8s Worker AutoScalingGroup | 3 |
| worker_size | number | Desired number of EC2 instances for K8s Worker AutoScalingGroup | 3 |
| project | string | Project name used for tags | "k8s-the-right-hard-way-aws" |
| availability_zones | number | Number of different AZs to use | 3 |
| bastion_max_size | number | Maximum number of EC2 instances for Bastion AutoScalingGroup | 1 |
| etcd_size | number | Desired number of EC2 instances for etcd AutoScalingGroup | 3 |
| master_size | number | Desired number of EC2 instances for K8s Master AutoScalingGroup | 3 |
| worker_max_size | number | Maximum number of EC2 instances for K8s Worker AutoScalingGroup | 3 |
| owner | string | Owner name used for tags | "napo.io" |
| etcd_max_size | number | Maximum number of EC2 instances for etcd AutoScalingGroup | 3 |
| etcd_instance_type | string | EC2 instance type for etcd instances | "t3a.small" |
| pod_cidr | string | The first two octets for the Pod network CIDR (used in Worker UserData to genera | "10.200" |
| bastion_instance_type | string | EC2 instance type for Bastion Host | "t3a.small" |
| stage | string | Environment name (e.g. `testing`, `dev`, `staging`, `prod`) | "testing" |
route53_bastion_public_fqdn — Route53 record for Bastion Host Load Balancerroute53_master-public-lb_public_fqdn — Route53 record for Master Public Load BalancerAzure landing zones Terraform module
Terraform supermodule for the Terraform platform engineering for Azure
Terraform module to deploy landing zone subscriptions (and much more) in Azure
Terraform Module to define a consistent naming convention by (namespace, stage,