OpenTofu used the selected providers to generate the following execution plan. Resource actions are indicated with the following symbols: + create OpenTofu will perform the following actions: # module.inner_storage.libvirt_pool.dc will be created + resource "libvirt_pool" "dc" { + allocation = (known after apply) + available = (known after apply) + capacity = (known after apply) + id = (known after apply) + name = "vr1-dc0-inner-pool" + target = { + path = "/var/lib/libvirt/vr1-dc0-inner" } + type = "dir" + uuid = (known after apply) } # module.vr1_dc0_node["vr1-dc0-compute-01"].libvirt_domain.node will be created + resource "libvirt_domain" "node" { + autostart = false + cpu = { + mode = "host-passthrough" } + devices = { + disks = [ + { + boot = { + order = 2 } + driver = { + type = "qcow2" } + source = { + volume = { + pool = "vr1-dc0-inner-pool" + volume = "vr1-dc0-compute-01-disk.qcow2" } } + target = { + bus = "virtio" + dev = "vda" } }, ] + interfaces = [ + { + boot = { + order = 1 } + model = { + type = "virtio" } + source = { + network = { + network = "vr1-dc0-metal-admin" } } }, + { + model = { + type = "virtio" } + source = { + network = { + network = "vr1-dc0-provider-public" } } }, + { + model = { + type = "virtio" } + source = { + network = { + network = "vr1-dc0-metal-internal" } } }, + { + model = { + type = "virtio" } + source = { + network = { + network = "vr1-dc0-data-tenant" } } }, + { + model = { + type = "virtio" } + source = { + network = { + network = "vr1-dc0-storage" } } }, + { + model = { + type = "virtio" } + source = { + network = { + network = "vr1-dc0-replication" } } }, ] } + features = { + acpi = true + apic = {} } + id = (known after apply) + memory = 49152 + memory_unit = "MiB" + name = "vr1-dc0-compute-01" + os = { + type = "hvm" + type_arch = "x86_64" + type_machine = "q35" } + running = true + type = "kvm" + uuid = (known after apply) + vcpu = 12 } # module.vr1_dc0_node["vr1-dc0-compute-01"].libvirt_volume.disk will be created + resource "libvirt_volume" "disk" { + allocation = (known after apply) + capacity = 107374182400 + id = (known after apply) + key = (known after apply) + name = "vr1-dc0-compute-01-disk.qcow2" + path = (known after apply) + physical = (known after apply) + pool = "vr1-dc0-inner-pool" + target = { + format = { + type = "qcow2" } + path = (known after apply) } } # module.vr1_dc0_node["vr1-dc0-compute-02"].libvirt_domain.node will be created + resource "libvirt_domain" "node" { + autostart = false + cpu = { + mode = "host-passthrough" } + devices = { + disks = [ + { + boot = { + order = 2 } + driver = { + type = "qcow2" } + source = { + volume = { + pool = "vr1-dc0-inner-pool" + volume = "vr1-dc0-compute-02-disk.qcow2" } } + target = { + bus = "virtio" + dev = "vda" } }, ] + interfaces = [ + { + boot = { + order = 1 } + model = { + type = "virtio" } + source = { + network = { + network = "vr1-dc0-metal-admin" } } }, + { + model = { + type = "virtio" } + source = { + network = { + network = "vr1-dc0-provider-public" } } }, + { + model = { + type = "virtio" } + source = { + network = { + network = "vr1-dc0-metal-internal" } } }, + { + model = { + type = "virtio" } + source = { + network = { + network = "vr1-dc0-data-tenant" } } }, + { + model = { + type = "virtio" } + source = { + network = { + network = "vr1-dc0-storage" } } }, + { + model = { + type = "virtio" } + source = { + network = { + network = "vr1-dc0-replication" } } }, ] } + features = { + acpi = true + apic = {} } + id = (known after apply) + memory = 49152 + memory_unit = "MiB" + name = "vr1-dc0-compute-02" + os = { + type = "hvm" + type_arch = "x86_64" + type_machine = "q35" } + running = true + type = "kvm" + uuid = (known after apply) + vcpu = 12 } # module.vr1_dc0_node["vr1-dc0-compute-02"].libvirt_volume.disk will be created + resource "libvirt_volume" "disk" { + allocation = (known after apply) + capacity = 107374182400 + id = (known after apply) + key = (known after apply) + name = "vr1-dc0-compute-02-disk.qcow2" + path = (known after apply) + physical = (known after apply) + pool = "vr1-dc0-inner-pool" + target = { + format = { + type = "qcow2" } + path = (known after apply) } } # module.vr1_dc0_node["vr1-dc0-control-01"].libvirt_domain.node will be created + resource "libvirt_domain" "node" { + autostart = false + cpu = { + mode = "host-passthrough" } + devices = { + disks = [ + { + boot = { + order = 2 } + driver = { + type = "qcow2" } + source = { + volume = { + pool = "vr1-dc0-inner-pool" + volume = "vr1-dc0-control-01-disk.qcow2" } } + target = { + bus = "virtio" + dev = "vda" } }, ] + interfaces = [ + { + boot = { + order = 1 } + model = { + type = "virtio" } + source = { + network = { + network = "vr1-dc0-metal-admin" } } }, + { + model = { + type = "virtio" } + source = { + network = { + network = "vr1-dc0-provider-public" } } }, + { + model = { + type = "virtio" } + source = { + network = { + network = "vr1-dc0-metal-internal" } } }, + { + model = { + type = "virtio" } + source = { + network = { + network = "vr1-dc0-data-tenant" } } }, + { + model = { + type = "virtio" } + source = { + network = { + network = "vr1-dc0-storage" } } }, + { + model = { + type = "virtio" } + source = { + network = { + network = "vr1-dc0-replication" } } }, ] } + features = { + acpi = true + apic = {} } + id = (known after apply) + memory = 65536 + memory_unit = "MiB" + name = "vr1-dc0-control-01" + os = { + type = "hvm" + type_arch = "x86_64" + type_machine = "q35" } + running = true + type = "kvm" + uuid = (known after apply) + vcpu = 16 } # module.vr1_dc0_node["vr1-dc0-control-01"].libvirt_volume.disk will be created + resource "libvirt_volume" "disk" { + allocation = (known after apply) + capacity = 161061273600 + id = (known after apply) + key = (known after apply) + name = "vr1-dc0-control-01-disk.qcow2" + path = (known after apply) + physical = (known after apply) + pool = "vr1-dc0-inner-pool" + target = { + format = { + type = "qcow2" } + path = (known after apply) } } # module.vr1_dc0_node["vr1-dc0-control-02"].libvirt_domain.node will be created + resource "libvirt_domain" "node" { + autostart = false + cpu = { + mode = "host-passthrough" } + devices = { + disks = [ + { + boot = { + order = 2 } + driver = { + type = "qcow2" } + source = { + volume = { + pool = "vr1-dc0-inner-pool" + volume = "vr1-dc0-control-02-disk.qcow2" } } + target = { + bus = "virtio" + dev = "vda" } }, ] + interfaces = [ + { + boot = { + order = 1 } + model = { + type = "virtio" } + source = { + network = { + network = "vr1-dc0-metal-admin" } } }, + { + model = { + type = "virtio" } + source = { + network = { + network = "vr1-dc0-provider-public" } } }, + { + model = { + type = "virtio" } + source = { + network = { + network = "vr1-dc0-metal-internal" } } }, + { + model = { + type = "virtio" } + source = { + network = { + network = "vr1-dc0-data-tenant" } } }, + { + model = { + type = "virtio" } + source = { + network = { + network = "vr1-dc0-storage" } } }, + { + model = { + type = "virtio" } + source = { + network = { + network = "vr1-dc0-replication" } } }, ] } + features = { + acpi = true + apic = {} } + id = (known after apply) + memory = 65536 + memory_unit = "MiB" + name = "vr1-dc0-control-02" + os = { + type = "hvm" + type_arch = "x86_64" + type_machine = "q35" } + running = true + type = "kvm" + uuid = (known after apply) + vcpu = 16 } # module.vr1_dc0_node["vr1-dc0-control-02"].libvirt_volume.disk will be created + resource "libvirt_volume" "disk" { + allocation = (known after apply) + capacity = 161061273600 + id = (known after apply) + key = (known after apply) + name = "vr1-dc0-control-02-disk.qcow2" + path = (known after apply) + physical = (known after apply) + pool = "vr1-dc0-inner-pool" + target = { + format = { + type = "qcow2" } + path = (known after apply) } } # module.vr1_dc0_node["vr1-dc0-control-03"].libvirt_domain.node will be created + resource "libvirt_domain" "node" { + autostart = false + cpu = { + mode = "host-passthrough" } + devices = { + disks = [ + { + boot = { + order = 2 } + driver = { + type = "qcow2" } + source = { + volume = { + pool = "vr1-dc0-inner-pool" + volume = "vr1-dc0-control-03-disk.qcow2" } } + target = { + bus = "virtio" + dev = "vda" } }, ] + interfaces = [ + { + boot = { + order = 1 } + model = { + type = "virtio" } + source = { + network = { + network = "vr1-dc0-metal-admin" } } }, + { + model = { + type = "virtio" } + source = { + network = { + network = "vr1-dc0-provider-public" } } }, + { + model = { + type = "virtio" } + source = { + network = { + network = "vr1-dc0-metal-internal" } } }, + { + model = { + type = "virtio" } + source = { + network = { + network = "vr1-dc0-data-tenant" } } }, + { + model = { + type = "virtio" } + source = { + network = { + network = "vr1-dc0-storage" } } }, + { + model = { + type = "virtio" } + source = { + network = { + network = "vr1-dc0-replication" } } }, ] } + features = { + acpi = true + apic = {} } + id = (known after apply) + memory = 65536 + memory_unit = "MiB" + name = "vr1-dc0-control-03" + os = { + type = "hvm" + type_arch = "x86_64" + type_machine = "q35" } + running = true + type = "kvm" + uuid = (known after apply) + vcpu = 16 } # module.vr1_dc0_node["vr1-dc0-control-03"].libvirt_volume.disk will be created + resource "libvirt_volume" "disk" { + allocation = (known after apply) + capacity = 161061273600 + id = (known after apply) + key = (known after apply) + name = "vr1-dc0-control-03-disk.qcow2" + path = (known after apply) + physical = (known after apply) + pool = "vr1-dc0-inner-pool" + target = { + format = { + type = "qcow2" } + path = (known after apply) } } # module.vr1_dc0_node["vr1-dc0-storage-01"].libvirt_domain.node will be created + resource "libvirt_domain" "node" { + autostart = false + cpu = { + mode = "host-passthrough" } + devices = { + disks = [ + { + boot = { + order = 2 } + driver = { + type = "qcow2" } + source = { + volume = { + pool = "vr1-dc0-inner-pool" + volume = "vr1-dc0-storage-01-disk.qcow2" } } + target = { + bus = "virtio" + dev = "vda" } }, ] + interfaces = [ + { + boot = { + order = 1 } + model = { + type = "virtio" } + source = { + network = { + network = "vr1-dc0-metal-admin" } } }, + { + model = { + type = "virtio" } + source = { + network = { + network = "vr1-dc0-provider-public" } } }, + { + model = { + type = "virtio" } + source = { + network = { + network = "vr1-dc0-metal-internal" } } }, + { + model = { + type = "virtio" } + source = { + network = { + network = "vr1-dc0-data-tenant" } } }, + { + model = { + type = "virtio" } + source = { + network = { + network = "vr1-dc0-storage" } } }, + { + model = { + type = "virtio" } + source = { + network = { + network = "vr1-dc0-replication" } } }, ] } + features = { + acpi = true + apic = {} } + id = (known after apply) + memory = 24576 + memory_unit = "MiB" + name = "vr1-dc0-storage-01" + os = { + type = "hvm" + type_arch = "x86_64" + type_machine = "q35" } + running = true + type = "kvm" + uuid = (known after apply) + vcpu = 8 } # module.vr1_dc0_node["vr1-dc0-storage-01"].libvirt_volume.disk will be created + resource "libvirt_volume" "disk" { + allocation = (known after apply) + capacity = 590558003200 + id = (known after apply) + key = (known after apply) + name = "vr1-dc0-storage-01-disk.qcow2" + path = (known after apply) + physical = (known after apply) + pool = "vr1-dc0-inner-pool" + target = { + format = { + type = "qcow2" } + path = (known after apply) } } # module.vr1_dc0_node["vr1-dc0-storage-02"].libvirt_domain.node will be created + resource "libvirt_domain" "node" { + autostart = false + cpu = { + mode = "host-passthrough" } + devices = { + disks = [ + { + boot = { + order = 2 } + driver = { + type = "qcow2" } + source = { + volume = { + pool = "vr1-dc0-inner-pool" + volume = "vr1-dc0-storage-02-disk.qcow2" } } + target = { + bus = "virtio" + dev = "vda" } }, ] + interfaces = [ + { + boot = { + order = 1 } + model = { + type = "virtio" } + source = { + network = { + network = "vr1-dc0-metal-admin" } } }, + { + model = { + type = "virtio" } + source = { + network = { + network = "vr1-dc0-provider-public" } } }, + { + model = { + type = "virtio" } + source = { + network = { + network = "vr1-dc0-metal-internal" } } }, + { + model = { + type = "virtio" } + source = { + network = { + network = "vr1-dc0-data-tenant" } } }, + { + model = { + type = "virtio" } + source = { + network = { + network = "vr1-dc0-storage" } } }, + { + model = { + type = "virtio" } + source = { + network = { + network = "vr1-dc0-replication" } } }, ] } + features = { + acpi = true + apic = {} } + id = (known after apply) + memory = 24576 + memory_unit = "MiB" + name = "vr1-dc0-storage-02" + os = { + type = "hvm" + type_arch = "x86_64" + type_machine = "q35" } + running = true + type = "kvm" + uuid = (known after apply) + vcpu = 8 } # module.vr1_dc0_node["vr1-dc0-storage-02"].libvirt_volume.disk will be created + resource "libvirt_volume" "disk" { + allocation = (known after apply) + capacity = 590558003200 + id = (known after apply) + key = (known after apply) + name = "vr1-dc0-storage-02-disk.qcow2" + path = (known after apply) + physical = (known after apply) + pool = "vr1-dc0-inner-pool" + target = { + format = { + type = "qcow2" } + path = (known after apply) } } # module.vr1_dc0_node["vr1-dc0-storage-03"].libvirt_domain.node will be created + resource "libvirt_domain" "node" { + autostart = false + cpu = { + mode = "host-passthrough" } + devices = { + disks = [ + { + boot = { + order = 2 } + driver = { + type = "qcow2" } + source = { + volume = { + pool = "vr1-dc0-inner-pool" + volume = "vr1-dc0-storage-03-disk.qcow2" } } + target = { + bus = "virtio" + dev = "vda" } }, ] + interfaces = [ + { + boot = { + order = 1 } + model = { + type = "virtio" } + source = { + network = { + network = "vr1-dc0-metal-admin" } } }, + { + model = { + type = "virtio" } + source = { + network = { + network = "vr1-dc0-provider-public" } } }, + { + model = { + type = "virtio" } + source = { + network = { + network = "vr1-dc0-metal-internal" } } }, + { + model = { + type = "virtio" } + source = { + network = { + network = "vr1-dc0-data-tenant" } } }, + { + model = { + type = "virtio" } + source = { + network = { + network = "vr1-dc0-storage" } } }, + { + model = { + type = "virtio" } + source = { + network = { + network = "vr1-dc0-replication" } } }, ] } + features = { + acpi = true + apic = {} } + id = (known after apply) + memory = 24576 + memory_unit = "MiB" + name = "vr1-dc0-storage-03" + os = { + type = "hvm" + type_arch = "x86_64" + type_machine = "q35" } + running = true + type = "kvm" + uuid = (known after apply) + vcpu = 8 } # module.vr1_dc0_node["vr1-dc0-storage-03"].libvirt_volume.disk will be created + resource "libvirt_volume" "disk" { + allocation = (known after apply) + capacity = 590558003200 + id = (known after apply) + key = (known after apply) + name = "vr1-dc0-storage-03-disk.qcow2" + path = (known after apply) + physical = (known after apply) + pool = "vr1-dc0-inner-pool" + target = { + format = { + type = "qcow2" } + path = (known after apply) } } # module.vr1_dc0_node["vr1-dc0-storage-04"].libvirt_domain.node will be created + resource "libvirt_domain" "node" { + autostart = false + cpu = { + mode = "host-passthrough" } + devices = { + disks = [ + { + boot = { + order = 2 } + driver = { + type = "qcow2" } + source = { + volume = { + pool = "vr1-dc0-inner-pool" + volume = "vr1-dc0-storage-04-disk.qcow2" } } + target = { + bus = "virtio" + dev = "vda" } }, ] + interfaces = [ + { + boot = { + order = 1 } + model = { + type = "virtio" } + source = { + network = { + network = "vr1-dc0-metal-admin" } } }, + { + model = { + type = "virtio" } + source = { + network = { + network = "vr1-dc0-provider-public" } } }, + { + model = { + type = "virtio" } + source = { + network = { + network = "vr1-dc0-metal-internal" } } }, + { + model = { + type = "virtio" } + source = { + network = { + network = "vr1-dc0-data-tenant" } } }, + { + model = { + type = "virtio" } + source = { + network = { + network = "vr1-dc0-storage" } } }, + { + model = { + type = "virtio" } + source = { + network = { + network = "vr1-dc0-replication" } } }, ] } + features = { + acpi = true + apic = {} } + id = (known after apply) + memory = 24576 + memory_unit = "MiB" + name = "vr1-dc0-storage-04" + os = { + type = "hvm" + type_arch = "x86_64" + type_machine = "q35" } + running = true + type = "kvm" + uuid = (known after apply) + vcpu = 8 } # module.vr1_dc0_node["vr1-dc0-storage-04"].libvirt_volume.disk will be created + resource "libvirt_volume" "disk" { + allocation = (known after apply) + capacity = 590558003200 + id = (known after apply) + key = (known after apply) + name = "vr1-dc0-storage-04-disk.qcow2" + path = (known after apply) + physical = (known after apply) + pool = "vr1-dc0-inner-pool" + target = { + format = { + type = "qcow2" } + path = (known after apply) } } # module.vr1_dc0_opnsense.libvirt_domain.vm will be created + resource "libvirt_domain" "vm" { + autostart = true + cpu = { + features = [ + { + name = "svm" + policy = "disable" }, ] + mode = "host-passthrough" } + devices = { + disks = [ + { + driver = { + type = "qcow2" } + source = { + volume = { + pool = "vr1-dc0-inner-pool" + volume = "vr1-dc0-opnsense-disk.qcow2" } } + target = { + bus = "virtio" + dev = "vda" } }, ] + interfaces = [ + { + model = { + type = "virtio" } + source = { + network = { + network = "vr1-dc0-provider-public" } } }, + { + model = { + type = "virtio" } + source = { + network = { + network = "vr1-dc0-wan" } } }, ] + serials = [ + { + log = { + append = "on" + file = "/var/lib/libvirt/vr1/staging/vr1-dc0-opnsense-serial.log" } + target = { + port = 0 } }, ] } + features = { + acpi = true + apic = {} } + id = (known after apply) + memory = 2048 + memory_unit = "MiB" + name = "vr1-dc0-opnsense" + os = { + type = "hvm" + type_arch = "x86_64" + type_machine = "pc" } + running = true + type = "kvm" + uuid = (known after apply) + vcpu = 2 } # module.vr1_dc0_opnsense.libvirt_volume.disk will be created + resource "libvirt_volume" "disk" { + allocation = (known after apply) + capacity = (known after apply) + create = { + content = { + url = "/var/lib/libvirt/vr1-dc0-inner/opnsense-26.7-nano.qcow2" } } + id = (known after apply) + key = (known after apply) + name = "vr1-dc0-opnsense-disk.qcow2" + path = (known after apply) + physical = (known after apply) + pool = "vr1-dc0-inner-pool" + target = { + format = { + type = "qcow2" } + path = (known after apply) } } # module.vr1_dc0_planes.libvirt_network.plane["data-tenant"] will be created + resource "libvirt_network" "plane" { + autostart = true + domain = { + name = "data-tenant.vr1-dc0.cloud.neumatrix.local" } + id = (known after apply) + mtu = { + size = 9000 } + name = "vr1-dc0-data-tenant" + uuid = (known after apply) } # module.vr1_dc0_planes.libvirt_network.plane["metal-admin"] will be created + resource "libvirt_network" "plane" { + autostart = true + domain = { + name = "metal-admin.vr1-dc0.cloud.neumatrix.local" } + id = (known after apply) + mtu = { + size = 9000 } + name = "vr1-dc0-metal-admin" + uuid = (known after apply) } # module.vr1_dc0_planes.libvirt_network.plane["metal-internal"] will be created + resource "libvirt_network" "plane" { + autostart = true + domain = { + name = "metal-internal.vr1-dc0.cloud.neumatrix.local" } + id = (known after apply) + mtu = { + size = 9000 } + name = "vr1-dc0-metal-internal" + uuid = (known after apply) } # module.vr1_dc0_planes.libvirt_network.plane["provider-public"] will be created + resource "libvirt_network" "plane" { + autostart = true + domain = { + name = "provider-public.vr1-dc0.cloud.neumatrix.local" } + id = (known after apply) + mtu = { + size = 9000 } + name = "vr1-dc0-provider-public" + uuid = (known after apply) } # module.vr1_dc0_planes.libvirt_network.plane["replication"] will be created + resource "libvirt_network" "plane" { + autostart = true + domain = { + name = "replication.vr1-dc0.cloud.neumatrix.local" } + id = (known after apply) + mtu = { + size = 9000 } + name = "vr1-dc0-replication" + uuid = (known after apply) } # module.vr1_dc0_planes.libvirt_network.plane["storage"] will be created + resource "libvirt_network" "plane" { + autostart = true + domain = { + name = "storage.vr1-dc0.cloud.neumatrix.local" } + id = (known after apply) + mtu = { + size = 9000 } + name = "vr1-dc0-storage" + uuid = (known after apply) } # module.vr1_dc0_wan.libvirt_network.wan_bridge will be created + resource "libvirt_network" "wan_bridge" { + autostart = true + bridge = { + name = "br-vr1-dc0-wan" } + forward = { + mode = "bridge" } + id = (known after apply) + mtu = { + size = 1500 } + name = "vr1-dc0-wan" + uuid = (known after apply) } Plan: 28 to add, 0 to change, 0 to destroy. ───────────────────────────────────────────────────────────────────────────── Saved the plan to: inner-stepC.tfplan To perform exactly these actions, run the following command to apply: tofu apply "inner-stepC.tfplan"