module.netem_vr1_dc0_vr1_dc1.terraform_data.netem: Refreshing state... [id=1ea36d3f-e7af-984c-8157-152724a0b85a]
module.voffice1.libvirt_cloudinit_disk.seed: Refreshing state... [id=a4694210c663c9ce]
module.vvr1_dc0.libvirt_cloudinit_disk.seed: Refreshing state... [id=ff281478c6083cc3]
module.office1_storage.libvirt_pool.dc: Refreshing state... [id=5f94194c-69c1-4b04-a85f-c18d87303a03]
module.vr1_dc1_storage.libvirt_pool.dc: Refreshing state... [id=4a1df114-ee04-4c80-9233-cc0c140c8556]
module.mesh_vr1_dc0_office1.libvirt_network.link: Refreshing state... [id=8318548f-c3d6-4e06-bef4-fe3f11d68125]
module.office1_network.libvirt_network.office1_local: Refreshing state... [id=8fdd2a97-417c-44d4-89e4-ae8d65594135]
module.mesh_vr1_dc1_office1.libvirt_network.link: Refreshing state... [id=38a20d2d-cd91-4604-a5f4-8e2a6609633c]
module.vr1_dc0_uplink.libvirt_network.site_wan: Refreshing state... [id=f3500153-e4de-45f1-8854-9c92974a6094]
module.mesh_vr1_dc0_vr1_dc1.libvirt_network.link: Refreshing state... [id=9cbc8589-9f40-48e6-872e-ef3abfe29a93]
module.vr1_dc0_storage.libvirt_pool.dc: Refreshing state... [id=7ce1101c-a89e-40ca-9263-5f572bee40a9]
module.ubuntu_noble_base.libvirt_volume.base: Refreshing state... [id=/var/lib/libvirt/vr1/office1/ubuntu-24.04-base.qcow2]
module.voffice1.libvirt_volume.seed: Refreshing state... [id=/var/lib/libvirt/vr1/office1/voffice1-cloudinit.iso]
module.office1_opnsense.libvirt_volume.disk: Refreshing state... [id=/var/lib/libvirt/vr1/office1/office1-opnsense-disk.qcow2]
module.vvr1_dc0.libvirt_volume.seed: Refreshing state... [id=/var/lib/libvirt/vr1/vr1-dc0/vvr1-dc0-cloudinit.iso]
module.voffice1.libvirt_volume.disk: Refreshing state... [id=/var/lib/libvirt/vr1/office1/voffice1-disk.qcow2]
module.vvr1_dc0.libvirt_volume.disk: Refreshing state... [id=/var/lib/libvirt/vr1/vr1-dc0/vvr1-dc0-disk.qcow2]
module.office1_opnsense.libvirt_domain.vm: Refreshing state... [name=office1-opnsense]
module.voffice1.libvirt_domain.vm: Refreshing state... [name=voffice1]
module.vvr1_dc0.libvirt_domain.vm: Refreshing state... [name=vvr1-dc0]
Note: Objects have changed outside of OpenTofu
OpenTofu detected the following changes made outside of OpenTofu since the
last "tofu apply" which may have affected this plan:
# module.vvr1_dc0.libvirt_domain.vm has changed
~ resource "libvirt_domain" "vm" {
~ id = 4 -> 7
name = "vvr1-dc0"
# (11 unchanged attributes hidden)
}
Unless you have made equivalent changes to your configuration, or ignored the
relevant attributes using ignore_changes, the following plan may include
actions to undo or respond to these changes.
─────────────────────────────────────────────────────────────────────────────
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.vr1_dc1_uplink.libvirt_network.site_wan will be created
+ resource "libvirt_network" "site_wan" {
+ autostart = true
+ domain = {
+ name = "vr1-dc1-uplink"
}
+ forward = {
+ mode = "nat"
}
+ id = (known after apply)
+ ips = [
+ {
+ address = "172.30.3.1"
+ prefix = 24
},
]
+ mtu = {
+ size = 1500
}
+ name = "vr1-dc1-uplink"
+ uuid = (known after apply)
}
# module.vvr1_dc1.libvirt_cloudinit_disk.seed will be created
+ resource "libvirt_cloudinit_disk" "seed" {
+ id = (known after apply)
+ meta_data = <<-EOT
instance-id: vvr1-dc1-d124a
local-hostname: vvr1-dc1
EOT
+ name = "vvr1-dc1-cloudinit"
+ network_config = <<-EOT
version: 2
ethernets:
transit:
match:
name: "enp1s0"
addresses: ["172.31.0.6/30"]
routes:
- to: "10.10.0.0/22"
via: "172.31.0.5"
uplink:
match:
name: "enp2s0"
dhcp4: false
dhcp6: false
bridges:
br-vr1-dc1-wan:
interfaces: [uplink]
dhcp4: false
dhcp6: false
parameters:
stp: false
forward-delay: 0
EOT
+ path = (known after apply)
+ size = (known after apply)
+ user_data = <<-EOT
#cloud-config
hostname: vvr1-dc1
fqdn: vvr1-dc1.cloud.neumatrix.local
manage_etc_hosts: true
users:
- name: jessea123
groups: [adm, sudo]
shell: /bin/bash
sudo: "ALL=(ALL) NOPASSWD:ALL"
ssh_authorized_keys:
# D-126 per-env-key: vvr1-dc1 authorizes the DEDICATED dc1 key ONLY
# (~/vr1-dc1-creds/, D-124 amendment 2026-07-21). Inner root's qemu+ssh matches.
- ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAWB2qmc9Qrb/iaWYy6aNioqARVM/H+VHaHPqBi+4g2t vr1-dc1_svc (D-126 per-env key)
package_update: true
packages:
- qemu-guest-agent
runcmd:
- [systemctl, enable, --now, qemu-guest-agent]
EOT
}
# module.vvr1_dc1.libvirt_domain.vm will be created
+ resource "libvirt_domain" "vm" {
+ autostart = false
+ cpu = {
+ features = []
+ mode = "host-passthrough"
}
+ devices = {
+ disks = [
+ {
+ driver = {
+ type = "qcow2"
}
+ source = {
+ volume = {
+ pool = "vr1-dc1-pool"
+ volume = "vvr1-dc1-disk.qcow2"
}
}
+ target = {
+ bus = "virtio"
+ dev = "vda"
}
},
+ {
+ device = "cdrom"
+ source = {
+ volume = {
+ pool = "vr1-dc1-pool"
+ volume = "vvr1-dc1-cloudinit.iso"
}
}
+ target = {
+ bus = "sata"
+ dev = "sda"
}
},
]
+ interfaces = [
+ {
+ model = {
+ type = "virtio"
}
+ source = {
+ network = {
+ network = "mesh-vr1-dc1-office1"
}
}
},
+ {
+ model = {
+ type = "virtio"
}
+ source = {
+ network = {
+ network = "vr1-dc1-uplink"
}
}
},
]
}
+ features = {
+ acpi = true
+ apic = {}
}
+ id = (known after apply)
+ memory = 425984
+ memory_unit = "MiB"
+ name = "vvr1-dc1"
+ os = {
+ type = "hvm"
+ type_arch = "x86_64"
+ type_machine = "q35"
}
+ running = true
+ type = "kvm"
+ uuid = (known after apply)
+ vcpu = 108
}
# module.vvr1_dc1.libvirt_volume.disk will be created
+ resource "libvirt_volume" "disk" {
+ allocation = (known after apply)
+ backing_store = {
+ format = {
+ type = "qcow2"
}
+ path = "/var/lib/libvirt/vr1/office1/ubuntu-24.04-base.qcow2"
}
+ capacity = 3221225472000
+ id = (known after apply)
+ key = (known after apply)
+ name = "vvr1-dc1-disk.qcow2"
+ path = (known after apply)
+ physical = (known after apply)
+ pool = "vr1-dc1-pool"
+ target = {
+ format = {
+ type = "qcow2"
}
+ path = (known after apply)
}
}
# module.vvr1_dc1.libvirt_volume.seed will be created
+ resource "libvirt_volume" "seed" {
+ allocation = (known after apply)
+ capacity = (known after apply)
+ create = {
+ content = {
+ url = (known after apply)
}
}
+ id = (known after apply)
+ key = (known after apply)
+ name = "vvr1-dc1-cloudinit.iso"
+ path = (known after apply)
+ physical = (known after apply)
+ pool = "vr1-dc1-pool"
}
Plan: 5 to add, 0 to change, 0 to destroy.
─────────────────────────────────────────────────────────────────────────────
Note: You didn't use the -out option to save this plan, so OpenTofu can't
guarantee to take exactly these actions if you run "tofu apply" now.