resource "aws_eip" "nat" {
  count = length(var.availability_zones)
  vpc   = true
}

module "vpc" {
  source  = "terraform-aws-modules/vpc/aws"
  version = "3.11.0"

  name = "jsm-vpc"
  cidr = var.vpc_cidr

  azs             = var.availability_zones
  private_subnets = var.app_private_subnets_cidr
  public_subnets  = var.app_public_subnets_cidr

  enable_nat_gateway   = true
  enable_dns_hostnames = true
  reuse_nat_ips        = true
  external_nat_ip_ids  = aws_eip.nat.*.id

  tags = {
    context                                         = "jsm-customer-service-app"
    owner                                           = "liuy@pingcap.com"
    "kubernetes.io/cluster/${var.eks_cluster_name}" = "shared"
  }

  private_subnet_tags = {
    "kubernetes.io/cluster/${var.eks_cluster_name}" = "shared"
    "kubernetes.io/role/internal-elb"               = "1"
  }

  public_subnet_tags = {
    "kubernetes.io/cluster/${var.eks_cluster_name}" = "shared"
    "kubernetes.io/role/elb"                        = "1"
  }
}
