We are going to explore how to provision an EKS Fargate cluster with Terraform, and how to setup an AWS ALB Ingress controller serving K8S pods hosted in private subnets Article
| Name | Version |
|---|---|
| terraform | ~> 1.1.3 |
| aws | ~>3.71 |
| cloudflare | 3.7.0 |
| github | 4.19.1 |
| random | 3.1.0 |
| tls | 3.4.0 |
| Name | Version |
|---|---|
| aws | 3.75.2 |
| tls | 3.4.0 |
| Name | Source | Version |
|---|---|---|
| vpc | github.com/obytes/terraform-aws-vpc.git | v1.0.5 |
| Name | Description | Type | Default | Required |
|---|---|---|---|---|
| cidr_block | The main CIDR block of the VPC | string |
"172.19.0.0/18" |
no |
| cluster_ip_family | The IP type of EKS Cluster | string |
"ipv4" |
no |
| cluster_timeouts | Create, update, and delete timeout configurations for the cluster | map(string) |
{} |
no |
| create_acm_certificate | Boolean, either to create a new ACM certificate or use existing one | bool |
true |
no |
| create_ecr_repository | Boolean, either to create a new ECR repository or use existing one | bool |
true |
no |
| create_kms_key | Boolean, either to create a new KMS key or use existing one | bool |
true |
no |
| create_public_subnets | A Boolean, for creating public subnets | bool |
true |
no |
| domain | Domain Name to issue ACM Certificate | string |
"obytes.com" |
no |
| enable_dns_hostnames | A Boolean to enable the dns hostname resolving | bool |
true |
no |
| enable_internet_gateway | A Boolean either to create an internet GW for the public reachability | string |
true |
no |
| enable_nat_gateway | A Boolean either to create a NAT GW in the VPC, used by the private subnets | bool |
true |
no |
| environment | The environment id where those resources will be created such as stag, production, qa | string |
"stg" |
no |
| gh_branch | GH Branch that will mapped to QA EKS Deployments | string |
"main" |
no |
| kubernetes_cidr | Configuration block with kubernetes network configuration for the cluster | string |
"172.16.64.0/24" |
no |
| profile_name | AWS Credentials profile name | string |
n/a | yes |
| project_name | The Project name | string |
"eks" |
no |
| region | AWS Region name | string |
"eu-west-1" |
no |
| single_nat_gateway | A Boolean, either to create a single NAT GW for the VPC or to create a separate NAT GW for each AZ | bool |
true |
no |
| Name | Description |
|---|---|
| acm_details | Details about the ACM certificate for generaltask.com |
| availability_zones | List of Availability Zones where subnets were created |
| cluster_sg_id | EKS Cluster security group |
| eks_cluster | EKS Cluster information |
| elastc_ips | AWS eip public ips |
| kms_alias_name | KMS key alias |
| kms_arn | KMS Key ARN |
| kms_id | KMS Key ID |
| nat_gw_ids | aws nat gateway id(s) |
| nat_ips | IP Addresses in use for NAT |
| prv_route_table_ids | private route table ids |
| prv_subnet_cidrs | Private Subnet cidr_blocks |
| prv_subnet_ids | Private Subnet IDs |
| pub_route_table_ids | Public route table ids |
| pub_subnet_cidrs | Public Subnet cidr_blocks |
| pub_subnet_ids | Public Subnet IDs |
| vpc_cidr_block | CIDR Block of the VPC |
| vpc_dhcp_dns_list | VPC DHCP DNS linst |
| vpc_id | VPC ID |
| vpc_sg_id | Security Group ID of the VPC |