feat(network): make interfaces[] canonical, normalize flat fields as AWX compat

Flat network fields (bridge, ip, prefix, gateway, vlan) are now converted
into a single-entry interfaces[] list during normalization. All virtualization
tasks (proxmox, vmware, libvirt, xen) and configuration (NM, Alpine, Void)
now consume system_cfg.network.interfaces exclusively for multi-NIC support.

Also fixes: user.key -> user.keys in system_cfg output, strict list-only DNS
in example inventories, removes legacy single-MAC virtualization_mac_address
default.
This commit is contained in:
2026-02-12 22:17:02 +01:00
parent d7260a8078
commit 8071a7c56c
17 changed files with 222 additions and 159 deletions

View File

@@ -25,6 +25,7 @@ system:
memory: 8192
balloon: 0
network:
# Flat fields (AWX survey compatibility, builds single-entry interfaces[])
bridge: "vmbr0"
ip: "{{ inventory_hostname }}"
prefix: 24
@@ -35,6 +36,16 @@ system:
- "1.0.0.1"
search:
- "example.com"
# Multi-NIC: use interfaces[] instead of flat fields above
# interfaces:
# - name: "eth0"
# bridge: "vmbr0"
# ip: "10.0.0.10"
# prefix: 24
# gateway: "10.0.0.1"
# - name: "eth1"
# bridge: "vmbr1"
# vlan: "100"
path: "/Lab/Example"
disks:
- size: 80
@@ -47,7 +58,8 @@ system:
user:
name: "ops"
password: "CHANGE_ME"
key: "ssh-ed25519 AAAA..."
keys:
- "ssh-ed25519 AAAA..."
root:
password: "CHANGE_ME"
luks: