provider "aws" { region = var.region } data "aws_availability_zones" "available" {} locals { azs = slice(data.aws_availability_zones.available.names, 0, 3) vpc_cidr = "10.99.0.0/16" tags = { GithubRepo = "github.com/aws-samples/amazon-eks-custom-amis" } } ################################################################################ # VPC ################################################################################ module "vpc" { source = "terraform-aws-modules/vpc/aws" version = "~> 3.0" name = var.name cidr = local.vpc_cidr azs = local.azs public_subnets = [for k, v in local.azs : cidrsubnet(local.vpc_cidr, 8, k)] private_subnets = [for k, v in local.azs : cidrsubnet(local.vpc_cidr, 8, k + 10)] enable_nat_gateway = true single_nat_gateway = true enable_dns_hostnames = true # Manage so we can name manage_default_network_acl = true default_network_acl_tags = { Name = "${var.name}-default" } manage_default_route_table = true default_route_table_tags = { Name = "${var.name}-default" } manage_default_security_group = true default_security_group_tags = { Name = "${var.name}-default" } public_subnet_tags = { "kubernetes.io/cluster/${var.name}" = "shared" "kubernetes.io/role/elb" = 1 } private_subnet_tags = { "kubernetes.io/cluster/${var.name}" = "shared" "kubernetes.io/role/internal-elb" = 1 } tags = local.tags }