Вы можете использовать "google_compute_attached_disk" вместо attach_disk в google_compute_instance.https://www.terraform.io/docs/providers/google/r/compute_attached_disk.html
resource "google_compute_attached_disk" "default" {
count = "${var.extra-disk-count}"
disk = "${element(google_compute_disk.openqa.*.self_link, count.index)}"
instance = "${element(google_compute_instance.default.*.self_link, count.index)}"
}
Обратите внимание, что число дополнительных дисков должно быть равно 0 или равно числу google_compute_attached_disk.default (var.count).если число дополнительных дисков больше чем var.count, это делает ошибку.И если число дополнительных дисков больше 0 и меньше, чем var.count, у некоторых экземпляров вычислений не будет дисков.
Поэтому я хочу изменить, как показано ниже,
// remove extra-disk-count
variable "create-extra-disk" {
default = "false"
}
resource "google_compute_instance" "openqa" {
count = "${var.count}"
name = "${var.name}-${element(random_id.service.*.hex, count.index)}"
machine_type = "${var.type}"
zone = "${var.region}"
boot_disk {
initialize_params {
image = "${var.image_id}"
}
}
}
resource "google_compute_attached_disk" "default" {
count = "${var.create-extra-disk ? var.count: 0}"
disk = "${element(google_compute_disk.openqa.*.self_link, count.index)}"
instance = "${element(google_compute_instance.default.*.self_link, count.index)}"
}
resource "google_compute_disk" "default" {
name = "ssd-disk"
count = "${var.create-extra-disk ? var.count : 0}"
type = "pd-ssd"
zone = "${var.region}"
size = "${var.extra-disk-size}"
physical_block_size_bytes = 4096
}
, еслиcreate-extra-disk имеет значение false, дополнительный диск не будет создан и подключен.если create-extra-disk имеет значение true, дополнительный диск будет создан и подключен ко всем экземплярам вычислений.