92 lines
1.8 KiB
HCL
92 lines
1.8 KiB
HCL
# Copyright (c) HashiCorp, Inc.
|
|
# SPDX-License-Identifier: MPL-2.0
|
|
|
|
data "aws_availability_zones" "available" {
|
|
state = "available"
|
|
|
|
filter {
|
|
name = "zone-name"
|
|
values = ["*"]
|
|
}
|
|
}
|
|
|
|
resource "random_string" "cluster_id" {
|
|
length = 8
|
|
lower = true
|
|
upper = false
|
|
numeric = false
|
|
special = false
|
|
}
|
|
|
|
resource "aws_vpc" "vpc" {
|
|
cidr_block = var.cidr
|
|
enable_dns_hostnames = true
|
|
enable_dns_support = true
|
|
|
|
tags = merge(
|
|
var.common_tags,
|
|
{
|
|
"Name" = var.name
|
|
},
|
|
)
|
|
}
|
|
|
|
resource "aws_subnet" "subnet" {
|
|
count = length(data.aws_availability_zones.available.names)
|
|
vpc_id = aws_vpc.vpc.id
|
|
cidr_block = cidrsubnet(var.cidr, 8, count.index)
|
|
availability_zone = data.aws_availability_zones.available.names[count.index]
|
|
map_public_ip_on_launch = true
|
|
|
|
tags = merge(
|
|
var.common_tags,
|
|
{
|
|
"Name" = "${var.name}-subnet-${data.aws_availability_zones.available.names[count.index]}"
|
|
},
|
|
)
|
|
}
|
|
|
|
resource "aws_internet_gateway" "igw" {
|
|
vpc_id = aws_vpc.vpc.id
|
|
|
|
tags = merge(
|
|
var.common_tags,
|
|
{
|
|
"Name" = "${var.name}-igw"
|
|
},
|
|
)
|
|
}
|
|
|
|
resource "aws_route" "igw" {
|
|
route_table_id = aws_vpc.vpc.default_route_table_id
|
|
destination_cidr_block = "0.0.0.0/0"
|
|
gateway_id = aws_internet_gateway.igw.id
|
|
}
|
|
|
|
resource "aws_security_group" "default" {
|
|
vpc_id = aws_vpc.vpc.id
|
|
|
|
ingress {
|
|
description = "allow_ingress_from_all"
|
|
from_port = 0
|
|
to_port = 0
|
|
protocol = "tcp"
|
|
cidr_blocks = ["0.0.0.0/0"]
|
|
}
|
|
|
|
egress {
|
|
description = "allow_egress_from_all"
|
|
from_port = 0
|
|
to_port = 0
|
|
protocol = "-1"
|
|
cidr_blocks = ["0.0.0.0/0"]
|
|
}
|
|
|
|
tags = merge(
|
|
var.common_tags,
|
|
{
|
|
"Name" = "${var.name}-default"
|
|
},
|
|
)
|
|
}
|