2022-05-22 09:39:30 -04:00
|
|
|
terraform {
|
|
|
|
required_providers {
|
|
|
|
libvirt = {
|
|
|
|
source = "dmacvicar/libvirt"
|
|
|
|
version = "0.6.14"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
locals {
|
|
|
|
state_disk_size_byte = 1073741824 * var.state_disk_size
|
|
|
|
}
|
|
|
|
|
|
|
|
resource "libvirt_domain" "instance_group" {
|
|
|
|
name = "${var.role}-${count.index}"
|
|
|
|
count = var.amount
|
|
|
|
memory = var.memory
|
|
|
|
vcpu = var.vcpus
|
2022-05-30 04:29:34 -04:00
|
|
|
machine = var.machine
|
2022-05-22 09:39:30 -04:00
|
|
|
tpm {
|
|
|
|
backend_type = "emulator"
|
|
|
|
backend_version = "2.0"
|
|
|
|
}
|
|
|
|
disk = [
|
|
|
|
{
|
|
|
|
volume_id = element(libvirt_volume.boot_volume.*.id, count.index)
|
|
|
|
scsi : true,
|
|
|
|
// fix for https://github.com/dmacvicar/terraform-provider-libvirt/issues/728
|
|
|
|
block_device : null,
|
|
|
|
file : null,
|
|
|
|
url : null,
|
|
|
|
wwn : null
|
|
|
|
},
|
|
|
|
{
|
|
|
|
volume_id = element(libvirt_volume.state_volume.*.id, count.index)
|
|
|
|
// fix for https://github.com/dmacvicar/terraform-provider-libvirt/issues/728
|
|
|
|
block_device : null,
|
|
|
|
file : null,
|
|
|
|
scsi : null,
|
|
|
|
url : null,
|
|
|
|
wwn : null
|
|
|
|
},
|
|
|
|
]
|
|
|
|
network_interface {
|
|
|
|
network_id = var.network_id
|
|
|
|
hostname = "${var.role}-${count.index}"
|
|
|
|
addresses = [cidrhost(var.cidr, var.ip_range_start + count.index)]
|
|
|
|
wait_for_lease = true
|
|
|
|
}
|
|
|
|
console {
|
|
|
|
type = "pty"
|
|
|
|
target_port = "0"
|
|
|
|
}
|
|
|
|
xml {
|
|
|
|
xslt = file("modules/instance_group/domain.xsl")
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
resource "libvirt_volume" "boot_volume" {
|
|
|
|
name = "constellation-${var.role}-${count.index}-boot"
|
|
|
|
count = var.amount
|
|
|
|
pool = var.pool
|
|
|
|
base_volume_id = var.boot_volume_id
|
|
|
|
}
|
|
|
|
|
|
|
|
resource "libvirt_volume" "state_volume" {
|
|
|
|
name = "constellation-${var.role}-${count.index}-state"
|
|
|
|
count = var.amount
|
|
|
|
pool = var.pool
|
|
|
|
size = local.state_disk_size_byte
|
|
|
|
format = "qcow2"
|
|
|
|
}
|