» google_compute_instance_from_template

Manages a VM instance resource within GCE. For more information see the official documentation and API.

This resource is specifically to create a compute instance from a given source_instance_template. To create an instance without a template, use the google_compute_instance resource.

» Example Usage

resource "google_compute_instance_template" "tpl" {
  name         = "template"
  machine_type = "n1-standard-1"

  disk {
    source_image = "debian-cloud/debian-9"
    auto_delete  = true
    disk_size_gb = 100
    boot         = true

  network_interface {
    network = "default"

  metadata = {
    foo = "bar"

  can_ip_forward = true

resource "google_compute_instance_from_template" "tpl" {
  name = "instance-from-template"
  zone = "us-central1-a"

  source_instance_template = google_compute_instance_template.tpl.id

  // Override fields from instance template
  can_ip_forward = false
  labels = {
    my_key = "my_value"

» Argument Reference

The following arguments are supported:

  • name - (Required) A unique name for the resource, required by GCE. Changing this forces a new resource to be created.

  • source_instance_template - (Required) Name or self link of an instance template to create the instance based on.

  • zone - (Optional) The zone that the machine should be created in. If not set, the provider zone is used.

In addition to these, all arguments from google_compute_instance are supported as a way to override the properties in the template. All exported attributes from google_compute_instance are likewise exported here.

To support removal of Optional/Computed fields in Terraform 0.12 the following fields are marked Attributes as Blocks:

» Timeouts

This resource provides the following Timeouts configuration options:

  • create - Default is 6 minutes.
  • update - Default is 6 minutes.
  • delete - Default is 6 minutes.