Tim Dalsing
Tim Dalsing

Reputation: 189

What is the correct way to add a second disk using Terraform on Google Compute

I am trying to add a second disk to a Google Compute instance using Terraform. This seems to be correct:

resource "google_compute_disk" "seconddisk" {
    name  = "seconddisk"
    type  = "pd-standard"
    zone  = "us-west1-a"
    size = "100"
}

resource "google_compute_instance" "someinstance" {

    name         = "someinstance"
    machine_type = "n1-standard-4"
    zone         = "us-west1-a" 

    disk {
        image = "${var.image_url}"
    }

    disk {
        disk = "${google_compute_disk.seconddisk.name}"
    }

    ...
}

However, I get the following error:

google_compute_instance.kafka1: Error creating instance: googleapi: Error 409: The resource '...' already exists, alreadyExists.

Thoughts?

Upvotes: 3

Views: 6807

Answers (1)

sam
sam

Reputation: 1896

As of 2022 May, you can do following

# disk
resource "google_compute_disk" "default" {
  name = "compute-disk"
}

# compute
resource "google_compute_instance" "default" {
  name         = "attached-disk-instance"
  machine_type = "e2-medium"
  zone         = "us-west1-a"

  boot_disk {
    initialize_params {
      image = "debian-cloud/debian-9"
    }
  }
  network_interface {
    network = "default"
  }
  lifecycle {
    ignore_changes = [attached_disk]
  }
}

# connect compute & disk
resource "google_compute_attached_disk" "default" {
  disk     = google_compute_disk.default.id
  instance = google_compute_instance.default.id
}

Helpful resources

Upvotes: 3

Related Questions