google_compute_node_group

Represents a NodeGroup resource to manage a group of sole-tenant nodes.

To get more information about NodeGroup, see:

Open in Cloud Shell

Example Usage - Node Group Basic

resource "google_compute_node_template" "soletenant-tmpl" {
  name      = "soletenant-tmpl"
  region    = "us-central1"
  node_type = "n1-node-96-624"
}

resource "google_compute_node_group" "nodes" {
  name        = "soletenant-group"
  zone        = "us-central1-f"
  description = "example google_compute_node_group for Terraform Google Provider"

  initial_size          = 1
  node_template = google_compute_node_template.soletenant-tmpl.id
}
Open in Cloud Shell

Example Usage - Node Group Maintenance Interval

resource "google_compute_node_template" "soletenant-tmpl" {
  provider  = google-beta
  name      = "soletenant-tmpl"
  region    = "us-central1"
  node_type = "c2-node-60-240"
}

resource "google_compute_node_group" "nodes" {
  provider    = google-beta
  name        = "soletenant-group"
  zone        = "us-central1-a"
  description = "example google_compute_node_group for Terraform Google Provider"

  initial_size          = 1
  node_template = google_compute_node_template.soletenant-tmpl.id

  maintenance_interval  = "RECURRENT"
}
Open in Cloud Shell

Example Usage - Node Group Autoscaling Policy

resource "google_compute_node_template" "soletenant-tmpl" {
  name      = "soletenant-tmpl"
  region    = "us-central1"
  node_type = "n1-node-96-624"
}

resource "google_compute_node_group" "nodes" {
  name        = "soletenant-group"
  zone        = "us-central1-f"
  description = "example google_compute_node_group for Terraform Google Provider"
  maintenance_policy = "RESTART_IN_PLACE"
  maintenance_window {
    start_time = "08:00"
  }
  initial_size  = 1
  node_template = google_compute_node_template.soletenant-tmpl.id
  autoscaling_policy {
    mode      = "ONLY_SCALE_OUT"
    min_nodes = 1
    max_nodes = 10
  }
}

Example Usage - Node Group Share Settings

resource "google_project" "guest_project" {
  project_id      = "project-id"
  name            = "project-name"
  org_id          = "123456789"
}

resource "google_compute_node_template" "soletenant-tmpl" {
  name      = "soletenant-tmpl"
  region    = "us-central1"
  node_type = "n1-node-96-624"
}

resource "google_compute_node_group" "nodes" {
  name        = "soletenant-group"
  zone        = "us-central1-f"
  description = "example google_compute_node_group for Terraform Google Provider"

  initial_size          = 1
  node_template = google_compute_node_template.soletenant-tmpl.id

  share_settings {
    share_type = "SPECIFIC_PROJECTS"
    project_map {
      id = google_project.guest_project.project_id
      project_id = google_project.guest_project.project_id
    }
  }
}

Argument Reference

The following arguments are supported:


The maintenance_window block supports:

The autoscaling_policy block supports:

The share_settings block supports:

The project_map 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

NodeGroup can be imported using any of these accepted formats:

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

import {
  id = "projects/{{project}}/zones/{{zone}}/nodeGroups/{{name}}"
  to = google_compute_node_group.default
}

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

$ terraform import google_compute_node_group.default projects/{{project}}/zones/{{zone}}/nodeGroups/{{name}}
$ terraform import google_compute_node_group.default {{project}}/{{zone}}/{{name}}
$ terraform import google_compute_node_group.default {{zone}}/{{name}}
$ terraform import google_compute_node_group.default {{name}}

User Project Overrides

This resource supports User Project Overrides.