» google_compute_route

Represents a Route resource.

A route is a rule that specifies how certain packets should be handled by the virtual network. Routes are associated with virtual machines by tag, and the set of routes for a particular virtual machine is called its routing table. For each packet leaving a virtual machine, the system searches that virtual machine's routing table for a single best matching route.

Routes match packets by destination IP address, preferring smaller or more specific ranges over larger ones. If there is a tie, the system selects the route with the smallest priority value. If there is still a tie, it uses the layer three and four packet headers to select just one of the remaining matching routes. The packet is then forwarded as specified by the next_hop field of the winning route -- either to another virtual machine destination, a virtual machine gateway or a Compute Engine-operated gateway. Packets that do not match any route in the sending virtual machine's routing table will be dropped.

A Route resource must have exactly one specification of either nextHopGateway, nextHopInstance, nextHopIp, nextHopVpnTunnel, or nextHopIlb.

To get more information about Route, see:

» Example Usage - Route Basic

resource "google_compute_route" "default" {
  name        = "network-route"
  dest_range  = ""
  network     = google_compute_network.default.name
  next_hop_ip = ""
  priority    = 100

resource "google_compute_network" "default" {
  name = "compute-network"

» Example Usage - Route Ilb

resource "google_compute_network" "default" {
  name                    = "compute-network"
  auto_create_subnetworks = false

resource "google_compute_subnetwork" "default" {
  name          = "compute-subnet"
  ip_cidr_range = ""
  region        = "us-central1"
  network       = google_compute_network.default.id

resource "google_compute_health_check" "hc" {
  name               = "proxy-health-check"
  check_interval_sec = 1
  timeout_sec        = 1

  tcp_health_check {
    port = "80"

resource "google_compute_region_backend_service" "backend" {
  name          = "compute-backend"
  region        = "us-central1"
  health_checks = [google_compute_health_check.hc.id]

resource "google_compute_forwarding_rule" "default" {
  name     = "compute-forwarding-rule"
  region   = "us-central1"

  load_balancing_scheme = "INTERNAL"
  backend_service       = google_compute_region_backend_service.backend.id
  all_ports             = true
  network               = google_compute_network.default.name
  subnetwork            = google_compute_subnetwork.default.name

resource "google_compute_route" "route-ilb" {
  name         = "route-ilb"
  dest_range   = ""
  network      = google_compute_network.default.name
  next_hop_ilb = google_compute_forwarding_rule.default.id
  priority     = 2000

» Argument Reference

The following arguments are supported:

  • dest_range - (Required) The destination range of outgoing packets that this route applies to. Only IPv4 is supported.

  • name - (Required) Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.

  • network - (Required) The network that this route applies to.

» Attributes Reference

In addition to the arguments listed above, the following computed attributes are exported:

  • id - an identifier for the resource with format projects/{{project}}/global/routes/{{name}}

  • next_hop_network - URL to a Network that should handle matching packets.

  • self_link - The URI of the created resource.

» Timeouts

This resource provides the following Timeouts configuration options:

  • create - Default is 4 minutes.
  • delete - Default is 4 minutes.

» Import

Route can be imported using any of these accepted formats:

$ terraform import google_compute_route.default projects/{{project}}/global/routes/{{name}}
$ terraform import google_compute_route.default {{project}}/{{name}}
$ terraform import google_compute_route.default {{name}}

» User Project Overrides

This resource supports User Project Overrides.