the-right-hard-way-aws

hajowieland/the-right-hard-way-aws/k8s

Terraform Module HCL K8S

Terraform code for "Kubernetes The (real) Hard Way (AWS)"

Install
module "the-right-hard-way-aws" {
source = "hajowieland/the-right-hard-way-aws/k8s"
version = "2.1.2"
}
plain text: /constructs/tfmod-hajowieland-the-right-hard-way-aws-k8s/install.txt
⭐ Source on GitHub 📦 Registry page
README

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

Inputs (27)
NameTypeDescriptionDefault
aws_key_pair_namestringAWS Key Pair name to use for EC2 Instances (if already existent) required
hosted_zonestringRoute53 Hosted Zone for creating records (without . suffix, e.g. `napo.io`) required
aws_vpc_cidrstringVPC CIDR block"10.23.0.0/16"
ssh_public_key_pathstringSSH public key path (to create a new AWS Key Pair from existing local SSH public"~/.ssh/id_rsa.pub"
bastion_sizenumberDesired number of EC2 instances for Bastion AutoScalingGroup1
master_instance_typestringEC2 instance type for K8s master instances"t3a.small"
aws_regionstringAWS region (e.g. `us-east-1` => US North Virginia)"us-east-1"
aws_profilestringAWS cli profile (e.g. `default`)"default"
worker_min_sizenumberMinimum number of EC2 instances for K8s Worker AutoScalingGroup3
worker_sizenumberDesired number of EC2 instances for K8s Worker AutoScalingGroup3
projectstringProject name used for tags"k8s-the-right-hard-way-aws"
availability_zonesnumberNumber of different AZs to use3
bastion_max_sizenumberMaximum number of EC2 instances for Bastion AutoScalingGroup1
etcd_sizenumberDesired number of EC2 instances for etcd AutoScalingGroup3
master_sizenumberDesired number of EC2 instances for K8s Master AutoScalingGroup3
worker_max_sizenumberMaximum number of EC2 instances for K8s Worker AutoScalingGroup3
ownerstringOwner name used for tags"napo.io"
etcd_max_sizenumberMaximum number of EC2 instances for etcd AutoScalingGroup3
etcd_instance_typestringEC2 instance type for etcd instances"t3a.small"
pod_cidrstringThe first two octets for the Pod network CIDR (used in Worker UserData to genera"10.200"
bastion_instance_typestringEC2 instance type for Bastion Host"t3a.small"
stagestringEnvironment name (e.g. `testing`, `dev`, `staging`, `prod`)"testing"
Outputs (2)
route53_bastion_public_fqdn — Route53 record for Bastion Host Load Balancer
route53_master-public-lb_public_fqdn — Route53 record for Master Public Load Balancer
Resources (17)
aws_autoscaling_groupaws_eipaws_elbaws_iam_instance_profileaws_iam_roleaws_iam_role_policyaws_internet_gatewayaws_key_pairaws_launch_configurationaws_nat_gatewayaws_route53_recordaws_route_tableaws_route_table_associationaws_security_groupaws_security_group_ruleaws_subnetaws_vpc
Details
FrameworkTerraform Module
LanguageHCL
Version2.1.2
Cloud K8S
★ Stars39
Forks31
Total downloads793
Inputs27
Outputs2
Resources17
LicenseGPL-3.0
Namespacehajowieland
Updated