google_compute_network_endpoints

A set of network endpoints belonging to a network endpoint group (NEG). A single network endpoint represents a IP address and port combination that is part of a specific network endpoint group (NEG). NEGs are zonal collections of these endpoints for GCP resources within a single subnet. NOTE: Network endpoints cannot be created outside of a network endpoint group.

This resource is authoritative for a single NEG. Any endpoints not specified by this resource will be deleted when the resource configuration is applied.

To get more information about NetworkEndpoints, see:

Example Usage - Network Endpoints

resource "google_compute_network_endpoints" "default-endpoints" {
  network_endpoint_group = google_compute_network_endpoint_group.neg.name

  network_endpoints {
    instance   = google_compute_instance.endpoint-instance1.name
    port       = google_compute_network_endpoint_group.neg.default_port
    ip_address = google_compute_instance.endpoint-instance1.network_interface[0].network_ip
  }
  network_endpoints {
    instance   = google_compute_instance.endpoint-instance2.name
    port       = google_compute_network_endpoint_group.neg.default_port
    ip_address = google_compute_instance.endpoint-instance2.network_interface[0].network_ip
  }
}

data "google_compute_image" "my_image" {
  family  = "debian-11"
  project = "debian-cloud"
}

resource "google_compute_instance" "endpoint-instance1" {
  name         = "endpoint-instance1"
  machine_type = "e2-medium"

  boot_disk {
    initialize_params {
      image = data.google_compute_image.my_image.self_link
    }
  }

  network_interface {
    subnetwork = google_compute_subnetwork.default.id
    access_config {
    }
  }
}

resource "google_compute_instance" "endpoint-instance2" {
  name         = "endpoint-instance2"
  machine_type = "e2-medium"

  boot_disk {
    initialize_params {
      image = data.google_compute_image.my_image.self_link
    }
  }

  network_interface {
    subnetwork = google_compute_subnetwork.default.id
    access_config {
    }
  }
}

resource "google_compute_network_endpoint_group" "group" {
  name         = "my-lb-neg"
  network      = google_compute_network.default.id
  subnetwork   = google_compute_subnetwork.default.id
  default_port = "90"
  zone         = "us-central1-a"
}

resource "google_compute_network" "default" {
  name                    = "neg-network"
  auto_create_subnetworks = false
}

resource "google_compute_subnetwork" "default" {
  name          = "neg-subnetwork"
  ip_cidr_range = "10.0.0.1/16"
  region        = "us-central1"
  network       = google_compute_network.default.id
}

Argument Reference

The following arguments are supported:


The network_endpoints block supports:

Attributes Reference

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

Timeouts

This resource provides the following Timeouts configuration options:

Import

NetworkEndpoints can be imported using any of these accepted formats:

In Terraform v1.5.0 and later, use an import block to import NetworkEndpoints using one of the formats above. For example:

import {
  id = "projects/{{project}}/zones/{{zone}}/networkEndpointGroups/{{network_endpoint_group}}"
  to = google_compute_network_endpoints.default
}

When using the terraform import command, NetworkEndpoints can be imported using one of the formats above. For example:

$ terraform import google_compute_network_endpoints.default projects/{{project}}/zones/{{zone}}/networkEndpointGroups/{{network_endpoint_group}}
$ terraform import google_compute_network_endpoints.default {{project}}/{{zone}}/{{network_endpoint_group}}
$ terraform import google_compute_network_endpoints.default {{zone}}/{{network_endpoint_group}}
$ terraform import google_compute_network_endpoints.default {{network_endpoint_group}}

User Project Overrides

This resource supports User Project Overrides.