terraform-aws-access/main.tf

57 lines
1.7 KiB
HCL

locals {
owner = var.owner
vpc_name = var.vpc_name
vpc_cidr = var.vpc_cidr # create when cidr is given, otherwise select with name
subnet_name = var.subnet_name
subnet_cidr = var.subnet_cidr # create when cidr is given, otherwise select with name
subnet_availability_zone = var.availability_zone # only used when creating
security_group_name = var.security_group_name
security_group_type = var.security_group_type # create when type is given, otherwise select with name
security_group_ip = var.security_group_ip
ssh_key_name = var.ssh_key_name
public_ssh_key = var.public_ssh_key # create when public key is given, otherwise select with name
}
data "http" "get_my_ip" {
count = (local.security_group_ip == "" ? 1 : 0)
url = "https://ipinfo.io/ip"
}
module "vpc" {
source = "./modules/vpc"
name = local.vpc_name
cidr = local.vpc_cidr
}
module "subnet" {
source = "./modules/subnet"
name = local.subnet_name
cidr = local.subnet_cidr
vpc_id = module.vpc.id
owner = local.owner
availability_zone = local.subnet_availability_zone
}
module "security_group" {
source = "./modules/security_group"
name = local.security_group_name
ip = (local.security_group_ip == "" ? data.http.get_my_ip[0].response_body : local.security_group_ip)
cidr = module.subnet.cidr
owner = local.owner
type = local.security_group_type
vpc_id = module.vpc.id
vpc_cidr = module.vpc.vpc.cidr_block
}
module "ssh_key" {
source = "./modules/ssh_key"
name = local.ssh_key_name
public_key = local.public_ssh_key
owner = local.owner
}