diff options
Diffstat (limited to 'Terraform/AWS/ha-instances-with-configs/transit_gateway.tf')
-rw-r--r-- | Terraform/AWS/ha-instances-with-configs/transit_gateway.tf | 82 |
1 files changed, 82 insertions, 0 deletions
diff --git a/Terraform/AWS/ha-instances-with-configs/transit_gateway.tf b/Terraform/AWS/ha-instances-with-configs/transit_gateway.tf new file mode 100644 index 0000000..e7b4509 --- /dev/null +++ b/Terraform/AWS/ha-instances-with-configs/transit_gateway.tf @@ -0,0 +1,82 @@ +# TRANSIT GATEWAY
+
+resource "aws_ec2_transit_gateway" "tgw" {
+ description = "Main Transit Gateway"
+ amazon_side_asn = 64512
+ auto_accept_shared_attachments = "enable"
+ default_route_table_association = "disable"
+ default_route_table_propagation = "disable"
+
+ tags = {
+ Name = "${var.prefix}-tgw"
+ }
+}
+
+# TRANSIT GATEWAY ATTACHMENT
+
+resource "aws_ec2_transit_gateway_vpc_attachment" "transit_vpc_attachment" {
+ subnet_ids = [aws_subnet.transit_vpc_private_subnet_01.id, aws_subnet.transit_vpc_private_subnet_02.id]
+ transit_gateway_id = aws_ec2_transit_gateway.tgw.id
+ vpc_id = aws_vpc.transit_vpc.id
+
+ tags = {
+ Name = "${var.prefix}-${var.transit_vpc_name}-attachment"
+ }
+}
+
+resource "aws_ec2_transit_gateway_vpc_attachment" "data_vpc_attachment" {
+ subnet_ids = [aws_subnet.data_vpc_private_subnet.id]
+ transit_gateway_id = aws_ec2_transit_gateway.tgw.id
+ vpc_id = aws_vpc.data_vpc.id
+
+ tags = {
+ Name = "${var.prefix}-${var.data_vpc_name}-attachment"
+ }
+}
+
+resource "aws_ec2_transit_gateway_connect" "tgw_connect" {
+ transport_attachment_id = aws_ec2_transit_gateway_vpc_attachment.transit_vpc_attachment.id
+ transit_gateway_id = aws_ec2_transit_gateway.tgw.id
+
+ tags = {
+ Name = "${var.prefix}-${var.transit_vpc_name}-connect"
+ }
+}
+
+# TRANSIT GATEWAY ROUTE
+
+resource "aws_ec2_transit_gateway_route_table" "tgw_rt" {
+ transit_gateway_id = aws_ec2_transit_gateway.tgw.id
+
+ tags = {
+ Name = "${var.prefix}-tgw-rtb"
+ }
+}
+
+resource "aws_ec2_transit_gateway_route" "azure" {
+ transit_gateway_route_table_id = aws_ec2_transit_gateway_route_table.tgw_rt.id
+ destination_cidr_block = var.on_prem_subnet_cidr
+ transit_gateway_attachment_id = aws_ec2_transit_gateway_vpc_attachment.transit_vpc_attachment.id
+}
+
+# TRANSIT GATEWAY ASSOSIATION and PROPAGATION
+
+resource "aws_ec2_transit_gateway_route_table_association" "transit_vpc_rt_assoc" {
+ transit_gateway_attachment_id = aws_ec2_transit_gateway_vpc_attachment.transit_vpc_attachment.id
+ transit_gateway_route_table_id = aws_ec2_transit_gateway_route_table.tgw_rt.id
+}
+
+resource "aws_ec2_transit_gateway_route_table_association" "data_vpc_rt_assoc" {
+ transit_gateway_attachment_id = aws_ec2_transit_gateway_vpc_attachment.data_vpc_attachment.id
+ transit_gateway_route_table_id = aws_ec2_transit_gateway_route_table.tgw_rt.id
+}
+
+resource "aws_ec2_transit_gateway_route_table_propagation" "transit_vpc_rt_prop" {
+ transit_gateway_attachment_id = aws_ec2_transit_gateway_vpc_attachment.transit_vpc_attachment.id
+ transit_gateway_route_table_id = aws_ec2_transit_gateway_route_table.tgw_rt.id
+}
+
+resource "aws_ec2_transit_gateway_route_table_propagation" "data_vpc_rt_prop" {
+ transit_gateway_attachment_id = aws_ec2_transit_gateway_vpc_attachment.data_vpc_attachment.id
+ transit_gateway_route_table_id = aws_ec2_transit_gateway_route_table.tgw_rt.id
+}
|