You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
66 lines
1.6 KiB
66 lines
1.6 KiB
resource "libvirt_cloudinit_disk" "storage_cloudinit" {
|
|
name = "${local.storage_name}-cloudinit.iso"
|
|
user_data = file("${path.module}/templates/storage/cloud-init.cfg")
|
|
network_config = file("${path.module}/templates/storage/network-config.cfg")
|
|
pool = var.pool_name
|
|
}
|
|
|
|
resource "libvirt_volume" "storage_os_disk" {
|
|
name = "${local.storage_name}-os.${var.volume_format}"
|
|
format = var.volume_format
|
|
pool = var.pool_name
|
|
base_volume_name = "${var.os_image}.${var.volume_format}"
|
|
}
|
|
|
|
resource "libvirt_volume" "storage_data_disk" {
|
|
name = "${local.storage_name}-data.${var.volume_format}"
|
|
format = var.volume_format
|
|
pool = var.pool_name
|
|
size = var.storage_disk_size
|
|
}
|
|
|
|
locals {
|
|
storage_node = {
|
|
hostname = local.storage_hostname
|
|
name = local.storage_name
|
|
ip = cidrhost(var.network_ip_range, 6)
|
|
mac = format(var.network_mac_format, 6)
|
|
role = "storage"
|
|
}
|
|
}
|
|
|
|
resource "libvirt_domain" "storage" {
|
|
name = local.storage_name
|
|
vcpu = var.storage_vcpu
|
|
memory = var.storage_memory_size
|
|
cloudinit = libvirt_cloudinit_disk.storage_cloudinit.id
|
|
autostart = false
|
|
|
|
cpu = {
|
|
mode = "host-passthrough"
|
|
}
|
|
|
|
disk {
|
|
volume_id = libvirt_volume.storage_os_disk.id
|
|
}
|
|
|
|
disk {
|
|
volume_id = libvirt_volume.storage_data_disk.id
|
|
}
|
|
|
|
# Makes the tty0 available via `virsh console`
|
|
console {
|
|
type = "pty"
|
|
target_port = "0"
|
|
}
|
|
|
|
network_interface {
|
|
network_name = var.network_name
|
|
mac = local.storage_node.mac
|
|
wait_for_lease = false
|
|
}
|
|
|
|
xml {
|
|
xslt = file("${path.module}/network.xslt")
|
|
}
|
|
}
|
|
|