Adding nodes¶
nova-ve nodes come in two flavours:
| Runtime | Backed by | Used for |
|---|---|---|
| Docker | A pre-built Docker image (e.g. nova-ve-alpine-telnet:latest) |
Lightweight Linux endpoints, traffic generators, host emulators |
| QEMU | A .qcow2 boot disk under /var/lib/nova-ve/images/qemu/ |
Full network OSes — vendor routers, switches, firewalls |
Both runtimes can be added from the editor palette.
From a template¶
Templates pre-fill all the bits a runtime needs (image path, CPU, RAM, NIC count, boot disk, console settings). Built-in templates plus anything imported from EVE-NG appear in the "Add node" modal.
- From the lab editor, click the Add node palette item.
- Pick From template.
- Filter by type (Docker, QEMU, IOL, Dynamips) or search by name.
- Click a template card to instantiate. The node lands on the canvas at the click point.
- Optionally edit the name / NIC count / per-port naming before clicking Add.
Without a template¶
Use Blank node if you want full control:
- Pick the runtime (Docker or QEMU).
- Pick an image (Docker tag, or a
.qcow2path under/var/lib/nova-ve/images/qemu/). - Set CPU, RAM, NIC count, console type (telnet for Docker, VNC/SPICE for QEMU).
A blank node never produces a reusable template — if you want one, save it to /var/lib/nova-ve/templates/<vendor>/<key>.json by hand. See Vendor coverage for the template JSON shape.
Per-port interface naming¶
Each node's NICs are named after a naming scheme (e.g. eth0, eth1 for Linux; Gi0/0, Gi0/1 for Cisco IOSv; ge-0/0/0 for Juniper). The scheme is template-defined for templated nodes; blank nodes default to eth<n>.
To override a single port's name, open the Node config modal → Interface naming → switch to Per-port → enter a comma-separated list (e.g. mgmt0, lan0, lan1).
Where node state lives¶
| Path | Holds |
|---|---|
/var/lib/nova-ve/labs/<lab>.json |
Lab topology — every node, its config, its links |
/var/lib/nova-ve/labs/<lab>/<node-id>/ |
Per-node runtime state — qcow2 overlays, log files |
/var/lib/nova-ve/images/<kind>/<key>/ |
Read-only base images (shared across labs) |
When you delete a node from the canvas, the runtime state directory and any links touching that node are cleaned up.