From 6740031cb97a1f2330a335322e851c1864132543 Mon Sep 17 00:00:00 2001 From: ITQ Date: Sat, 5 Jul 2025 12:20:21 +0300 Subject: [PATCH] feat: added terraform instance module --- terraform/modules/instance/main.tf | 50 ++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 terraform/modules/instance/main.tf diff --git a/terraform/modules/instance/main.tf b/terraform/modules/instance/main.tf new file mode 100644 index 0000000..b056cfa --- /dev/null +++ b/terraform/modules/instance/main.tf @@ -0,0 +1,50 @@ +terraform { + required_providers { + libvirt = { + source = "dmacvicar/libvirt" + } + } +} + +variable "name" {} +variable "network_id" {} +variable "ip" {} +variable "volume_base_id" {} +variable "user_data" {} +variable "vcpu" {} +variable "memory" {} + +resource "libvirt_volume" "image" { + name = "${var.name}_image" + base_volume_id = var.volume_base_id +} + +resource "libvirt_cloudinit_disk" "init" { + name = "${var.name}_cloudinit" + user_data = var.user_data +} + +resource "libvirt_domain" "this" { + name = var.name + vcpu = var.vcpu + memory = var.memory + + cpu { mode = "host-passthrough" } + + disk { volume_id = libvirt_volume.image.id } + cloudinit = libvirt_cloudinit_disk.init.id + + network_interface { + network_id = var.network_id + addresses = [var.ip] + } + + arch = "x86_64" + type = "kvm" + machine = "q35" + + running = true + autostart = false + + xml { xslt = file("${path.root}/configs/libvirt/patch.xsl") } +}