I have the following resource code excerpt:
resource "vsphere_virtual_machine" "standalone" {
resource_pool_id = data.vsphere_resource_pool.pool.id
datastore_id = data.vsphere_datastore.datastore.id
for_each = var.virtual_machines
name = each.value.name
memory = each.value.ram
num_cpus = each.value.logical_cpu
guest_id = "ubuntu64Guest"
network_interface {
network_id = data.vsphere_network.network.id
adapter_type = data.vsphere_virtual_machine.template.network_interface_types[0]
}
disk {
unit_number = 0
label = "OS"
size = each.value.disk0_size
eagerly_scrub = data.vsphere_virtual_machine.template.disks.0.eagerly_scrub
thin_provisioned = data.vsphere_virtual_machine.template.disks.0.thin_provisioned
}
dynamic "disk" {
for_each each.value.worker_node ? [1] : []
content {
unit_number = 1
label = "PX"
size = each.value.disk1_size
eagerly_scrub = data.vsphere_virtual_machine.template.disks.0.eagerly_scrub
thin_provisioned = data.vsphere_virtual_machine.template.disks.0.thin_provisioned
}
}
If each.value.worker_node is true I want to create a second disk for the VM, however when I run terraform plan, I get:
Error: Invalid block definition
on main.tf line 68, in resource "vsphere_virtual_machine" "standalone":
68: for_each each.value.worker_node ? [1] : []
Either a quoted string block label or an opening brace ("{") is expected here.
Its obvious that there is something wrong in my code, by I cannot fathom what it is.
question from:
https://stackoverflow.com/questions/65860264/terraform-dynamic-block-to-create-vmware-disk 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…