Open EQIX-TAM-JP opened 2 days ago
@vipin2060 https://registry.terraform.io/modules/equinix/fabric/equinix/latest/examples/cloud-router-2-aws-connection
suggested below
##vipin - module to spin up FCR data "terraform_remote_state" "fcr_id" { backend = "remote" config = { organization = "EQIX_projectX" workspaces = { name = "network-apac" } } module "cloud_router_aws_connection" { source = "equinix/fabric/equinix//modules/cloud-router-connection" connection_name = var.connection_name connection_type = var.connection_type notifications_type = var.notifications_type notifications_emails = var.notifications_emails bandwidth = var.bandwidth purchase_order_number = var.purchase_order_number #Aside aside_fcr_uuid = data.terraform_remote_state.fcr_id.outputs.fcr_id #Zside zside_ap_type = "SP" zside_ap_authentication_key = var.authentication_key zside_ap_profile_type = "L2_PROFILE" zside_location = var.awslocation zside_seller_region = var.seller_region zside_fabric_sp_name = "AWS Direct Connect" } data "aws_dx_connection" "aws_connection" { name = var.connection_name depends_on = [ module.cloud_router_aws_connection ] } resource "aws_dx_connection_confirmation" "confirmation" { connection_id = data.aws_dx_connection.aws_connection.id } resource "aws_dx_gateway" "aws_gateway" { depends_on = [ module.cloud_router_aws_connection ] name = var.aws_gateway_name amazon_side_asn = var.aws_gateway_asn } resource "aws_dx_private_virtual_interface" "aws_virtual_interface" { depends_on = [ module.cloud_router_aws_connection, aws_dx_gateway.aws_gateway ] lifecycle { precondition { condition = can(regex("^dxcon-*", data.aws_dx_connection.aws_connection.id)) error_message = "connection must be ready before running" } } connection_id = data.aws_dx_connection.aws_connection.id name = var.aws_vif_name vlan = data.aws_dx_connection.aws_connection.vlan_id address_family = var.aws_vif_address_family bgp_asn = var.aws_vif_bgp_asn amazon_address = var.aws_vif_amazon_address customer_address = var.aws_vif_customer_address bgp_auth_key = var.aws_vif_bgp_auth_key dx_gateway_id = aws_dx_gateway.aws_gateway.id } #vipin - to create Layer 3 on BGP resource "equinix_fabric_routing_protocol" "L3_FCRSG_to_AWS_Equinixside" { connection_uuid = data.aws_dx_connection.aws_connection.id type = "DIRECT" name = var.routing_name_d direct_ipv4 { equinix_iface_ip = // use `cidrhost` buidin func instead of hardcode } } resource "equinix_fabric_routing_protocol" "L3_FCRSG_to_AWS_AWSside" { depends_on = [ equinix_fabric_routing_protocol.L3_FCRSG_to_AWS_Equinixside ] connection_uuid = data.aws_dx_connection.aws_connection.id type = "BGP" customer_asn = var.aws_gateway_asn name = var.routing_name_aws bgp_auth_key = var.md5 bgp_ipv4 { customer_peer_ip = // use `cidrhost` buidin func instead of hardcode enabled = true } }
there is a useful module for routing as well. we can make it more neat with it. https://registry.terraform.io/modules/equinix/fabric/equinix/latest/submodules/cloud-router-routing-protocols
@vipin2060 https://registry.terraform.io/modules/equinix/fabric/equinix/latest/examples/cloud-router-2-aws-connection
suggested below