我正在尝试使用 terraform 在 gcp 中创建一个带有 boot_disk 和附加附加磁盘的 vm 实例。我找不到任何参数来在删除实例时自动删除附加的附加磁盘。
地形代码:
resource "google_compute_disk" "elastic-disk" {
count = var.no_of_elastic_intances
name = "elastic-disk-${count.index+1}-data"
type = "pd-standard"
size = "10"
}
resource "google_compute_instance" "elastic" {
count = var.no_of_elastic_intances
name = "${var.elastic_instance_name_prefix}-${count.index+1}"
machine_type = var.elastic_instance_machine_type
boot_disk {
auto_delete = true
mode = "READ_WRITE"
initialize_params {
image = var.elastic_instance_image_type
type = var.elastic_instance_disc_type
size = var.elasitc_instance_disc_size
}
}
attached_disk {
source = "${element(google_compute_disk.elastic-disk.*.self_link, count.index)}"
mode = "READ_WRITE"
}
network_interface {
network = var.elastic_instance_network
access_config {
}
}
}
答案 0 :(得分:1)
不支持为附加磁盘设置自动删除的功能。 HashiCorp/Google 决定不支持 Terraform 的此功能。
参考此issue:
<块引用>如果 Terraform 被告知删除实例,但不删除磁盘,并且 启用了自动删除,那么它不会专门删除 磁盘,但它们仍会被 GCP 删除。这种行为会 不会在计划运行中显示,因此可能会导致意外结果,因为 以及仍然显示磁盘存在的状态。
我的观点是 Terraform 应该管理从创建到销毁的整个生命周期。对于要附加到新实例的磁盘,请将这些磁盘创建为 Terraform HCL 的一部分,并将它们销毁为 HCL 的一部分。