update
This commit is contained in:
@@ -0,0 +1,149 @@
|
||||
resource "vsphere_virtual_machine" "worker" {
|
||||
for_each = {
|
||||
for name, machine in var.machines :
|
||||
name => machine
|
||||
if machine.node_type == "worker"
|
||||
}
|
||||
|
||||
name = "${var.prefix}-${each.key}"
|
||||
|
||||
resource_pool_id = var.pool_id
|
||||
datastore_id = var.datastore_id
|
||||
|
||||
num_cpus = var.worker_cores
|
||||
memory = var.worker_memory
|
||||
memory_reservation = var.worker_memory
|
||||
guest_id = var.guest_id
|
||||
enable_disk_uuid = "true" # needed for CSI provider
|
||||
scsi_type = var.scsi_type
|
||||
folder = var.folder
|
||||
firmware = var.firmware
|
||||
hardware_version = var.hardware_version
|
||||
|
||||
wait_for_guest_net_routable = false
|
||||
wait_for_guest_net_timeout = 0
|
||||
|
||||
network_interface {
|
||||
network_id = var.network_id
|
||||
adapter_type = var.adapter_type
|
||||
}
|
||||
|
||||
disk {
|
||||
label = "disk0"
|
||||
size = var.worker_disk_size
|
||||
thin_provisioned = var.disk_thin_provisioned
|
||||
}
|
||||
|
||||
lifecycle {
|
||||
ignore_changes = [disk]
|
||||
}
|
||||
|
||||
clone {
|
||||
template_uuid = var.template_id
|
||||
}
|
||||
|
||||
cdrom {
|
||||
client_device = true
|
||||
}
|
||||
|
||||
dynamic "vapp" {
|
||||
for_each = var.vapp ? [1] : []
|
||||
|
||||
content {
|
||||
properties = {
|
||||
"user-data" = base64encode(templatefile("${path.module}/templates/vapp-cloud-init.tpl", { ssh_public_keys = var.ssh_public_keys }))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
extra_config = {
|
||||
"isolation.tools.copy.disable" = "FALSE"
|
||||
"isolation.tools.paste.disable" = "FALSE"
|
||||
"isolation.tools.setGUIOptions.enable" = "TRUE"
|
||||
"guestinfo.userdata" = base64encode(templatefile("${path.module}/templates/cloud-init.tpl", { ssh_public_keys = var.ssh_public_keys }))
|
||||
"guestinfo.userdata.encoding" = "base64"
|
||||
"guestinfo.metadata" = base64encode(templatefile("${path.module}/templates/metadata.tpl", { hostname = "${var.prefix}-${each.key}",
|
||||
interface_name = var.interface_name
|
||||
ip = each.value.ip,
|
||||
netmask = each.value.netmask,
|
||||
gw = var.gateway,
|
||||
dns = var.dns_primary,
|
||||
ssh_public_keys = var.ssh_public_keys }))
|
||||
"guestinfo.metadata.encoding" = "base64"
|
||||
}
|
||||
}
|
||||
|
||||
resource "vsphere_virtual_machine" "master" {
|
||||
for_each = {
|
||||
for name, machine in var.machines :
|
||||
name => machine
|
||||
if machine.node_type == "master"
|
||||
}
|
||||
|
||||
name = "${var.prefix}-${each.key}"
|
||||
|
||||
resource_pool_id = var.pool_id
|
||||
datastore_id = var.datastore_id
|
||||
|
||||
num_cpus = var.master_cores
|
||||
memory = var.master_memory
|
||||
memory_reservation = var.master_memory
|
||||
guest_id = var.guest_id
|
||||
enable_disk_uuid = "true" # needed for CSI provider
|
||||
scsi_type = var.scsi_type
|
||||
folder = var.folder
|
||||
firmware = var.firmware
|
||||
hardware_version = var.hardware_version
|
||||
|
||||
wait_for_guest_net_routable = false
|
||||
wait_for_guest_net_timeout = 0
|
||||
|
||||
network_interface {
|
||||
network_id = var.network_id
|
||||
adapter_type = var.adapter_type
|
||||
}
|
||||
|
||||
disk {
|
||||
label = "disk0"
|
||||
size = var.master_disk_size
|
||||
thin_provisioned = var.disk_thin_provisioned
|
||||
}
|
||||
|
||||
lifecycle {
|
||||
ignore_changes = [disk]
|
||||
}
|
||||
|
||||
clone {
|
||||
template_uuid = var.template_id
|
||||
}
|
||||
|
||||
cdrom {
|
||||
client_device = true
|
||||
}
|
||||
|
||||
dynamic "vapp" {
|
||||
for_each = var.vapp ? [1] : []
|
||||
|
||||
content {
|
||||
properties = {
|
||||
"user-data" = base64encode(templatefile("${path.module}/templates/vapp-cloud-init.tpl", { ssh_public_keys = var.ssh_public_keys }))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
extra_config = {
|
||||
"isolation.tools.copy.disable" = "FALSE"
|
||||
"isolation.tools.paste.disable" = "FALSE"
|
||||
"isolation.tools.setGUIOptions.enable" = "TRUE"
|
||||
"guestinfo.userdata" = base64encode(templatefile("${path.module}/templates/cloud-init.tpl", { ssh_public_keys = var.ssh_public_keys }))
|
||||
"guestinfo.userdata.encoding" = "base64"
|
||||
"guestinfo.metadata" = base64encode(templatefile("${path.module}/templates/metadata.tpl", { hostname = "${var.prefix}-${each.key}",
|
||||
interface_name = var.interface_name
|
||||
ip = each.value.ip,
|
||||
netmask = each.value.netmask,
|
||||
gw = var.gateway,
|
||||
dns = var.dns_primary,
|
||||
ssh_public_keys = var.ssh_public_keys }))
|
||||
"guestinfo.metadata.encoding" = "base64"
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user