7-fortigate/shared/pbr.tf (120 lines of code) (raw):

################################################################################ resource "google_network_connectivity_policy_based_route" "prod_app_to_data" { name = "prod-app-to-data" description = "Route prod app to data" network = "projects/${local.prod_vpc_project_id}/global/networks/${local.prod_vpc_name}" priority = "900" project = local.prod_vpc_project_id filter { protocol_version = "IPV4" ip_protocol = "ALL" src_range = local.prod_app_snet_range dest_range = local.prod_data_snet_range } next_hop_ilb_ip = local.internal_ilb_address virtual_machine { tags = ["prod-app-to-data"] } labels = { env = "production" } } ################################################################################ resource "google_network_connectivity_policy_based_route" "prod_pub_to_app" { name = "prod-pub-to-app" description = "Route prod public to app" network = "projects/${local.prod_vpc_project_id}/global/networks/${local.prod_vpc_name}" priority = "900" project = local.prod_vpc_project_id filter { protocol_version = "IPV4" ip_protocol = "ALL" src_range = local.prod_pub_snet_range dest_range = local.prod_app_snet_range } next_hop_ilb_ip = local.internal_ilb_address virtual_machine { tags = ["prod-pub-to-app"] } labels = { env = "production" } } ################################################################################ resource "google_network_connectivity_policy_based_route" "nprod_app_to_data" { name = "nprod-app-to-data" description = "Route nprod app to data" network = "projects/${local.nprod_vpc_project_id}/global/networks/${local.nprod_vpc_name}" priority = "900" project = local.nprod_vpc_project_id filter { protocol_version = "IPV4" ip_protocol = "ALL" src_range = local.nprod_app_snet_range dest_range = local.nprod_data_snet_range } next_hop_ilb_ip = local.internal_ilb_address virtual_machine { tags = ["nprod-app-to-data"] } labels = { env = "nonproduction" } } ################################################################################ resource "google_network_connectivity_policy_based_route" "nprod_pub_to_app" { name = "nprod-pub-to-app" description = "Route nprod public to app" network = "projects/${local.nprod_vpc_project_id}/global/networks/${local.nprod_vpc_name}" priority = "900" project = local.nprod_vpc_project_id filter { protocol_version = "IPV4" ip_protocol = "ALL" src_range = local.nprod_pub_snet_range dest_range = local.nprod_app_snet_range } next_hop_ilb_ip = local.internal_ilb_address virtual_machine { tags = ["nprod-pub-to-app"] } labels = { env = "nonproduction" } } ################################################################################ resource "google_network_connectivity_policy_based_route" "dev_app_to_data" { name = "dev-app-to-data" description = "Route dev app to data" network = "projects/${local.dev_vpc_project_id}/global/networks/${local.dev_vpc_name}" priority = "900" project = local.dev_vpc_project_id filter { protocol_version = "IPV4" ip_protocol = "ALL" src_range = local.dev_app_snet_range dest_range = local.dev_data_snet_range } next_hop_ilb_ip = local.internal_ilb_address virtual_machine { tags = ["dev-app-to-data"] } labels = { env = "development" } } ################################################################################ resource "google_network_connectivity_policy_based_route" "dev_pub_to_app" { name = "dev-pub-to-app" description = "Route dev public to app" network = "projects/${local.dev_vpc_project_id}/global/networks/${local.dev_vpc_name}" priority = "900" project = local.dev_vpc_project_id filter { protocol_version = "IPV4" ip_protocol = "ALL" src_range = local.dev_pub_snet_range dest_range = local.dev_app_snet_range } next_hop_ilb_ip = local.internal_ilb_address virtual_machine { tags = ["dev-pub-to-app"] } labels = { env = "development" } } ################################################################################