# validated xenial and zesty network configuration output with net-convert.py csmith@fringe:~$ for release in xenial zesty; do > echo "$release START --------------"; > lxc exec test-$release -- grep CODENAME /etc/lsb-release; > lxc exec test-$release -- dpkg-query --show cloud-init; > lxc file push net-convert.py test-$release/net-convert.py; > lxc file push network_data.yaml test-$release/network_data.yaml; > for k in eni netplan; do > lxc exec test-$release -- python3 /net-convert.py \ > --network-data=/network_data.yaml --kind=yaml \ > --output-kind=$k --mac=eth0,c0:d6:9f:2c:e8:80 \ > --directory=out.d ; > done; > lxc exec test-$release -- cat out.d/etc/network/interfaces; > lxc exec test-$release -- cat out.d/etc/netplan/50-cloud-init.yaml > > echo "$release FINISH --------------"; > done xenial START -------------- DISTRIB_CODENAME=xenial cloud-init 0.7.9-233-ge586fe35-0ubuntu1~16.04.1 Input YAML config: - mac_address: c0:d6:9f:2c:e8:80 name: eth0 type: physical - mac_address: aa:d6:9f:2c:e8:80 name: eth1 type: physical - bridge_interfaces: - eth0 - eth1 name: br0 params: bridge_ageing: 250 bridge_bridgeprio: 22 bridge_fd: 1 bridge_gcint: 2 bridge_hello: 1 bridge_maxage: 10 bridge_maxwait: 0 bridge_pathcost: - eth0 50 - eth1 75 bridge_portprio: - eth0 28 - eth1 14 bridge_stp: 'off' bridge_waitport: - 1 eth0 - 2 eth1 type: bridge version: 1 Internal State !!python/object:cloudinit.net.network_state.NetworkState _network_state: dns: nameservers: [] search: [] interfaces: br0: address: null bridge_ageing: 250 bridge_bridgeprio: 22 bridge_fd: 1 bridge_gcint: 2 bridge_hello: 1 bridge_maxage: 10 bridge_maxwait: 0 bridge_pathcost: - eth0 50 - eth1 75 bridge_portprio: - eth0 28 - eth1 14 bridge_ports: - eth0 - eth1 bridge_stp: 'off' bridge_waitport: - 1 eth0 - 2 eth1 gateway: null inet: inet mac_address: null mode: manual mtu: null name: br0 subnets: [] type: bridge eth0: address: null gateway: null inet: inet mac_address: c0:d6:9f:2c:e8:80 mode: manual mtu: null name: eth0 subnets: [] type: physical eth1: address: null gateway: null inet: inet mac_address: aa:d6:9f:2c:e8:80 mode: manual mtu: null name: eth1 subnets: [] type: physical routes: [] use_ipv6: false _version: 1 use_ipv6: false Input YAML config: - mac_address: c0:d6:9f:2c:e8:80 name: eth0 type: physical - mac_address: aa:d6:9f:2c:e8:80 name: eth1 type: physical - bridge_interfaces: - eth0 - eth1 name: br0 params: bridge_ageing: 250 bridge_bridgeprio: 22 bridge_fd: 1 bridge_gcint: 2 bridge_hello: 1 bridge_maxage: 10 bridge_maxwait: 0 bridge_pathcost: - eth0 50 - eth1 75 bridge_portprio: - eth0 28 - eth1 14 bridge_stp: 'off' bridge_waitport: - 1 eth0 - 2 eth1 type: bridge version: 1 Internal State !!python/object:cloudinit.net.network_state.NetworkState _network_state: dns: nameservers: [] search: [] interfaces: br0: address: null bridge_ageing: 250 bridge_bridgeprio: 22 bridge_fd: 1 bridge_gcint: 2 bridge_hello: 1 bridge_maxage: 10 bridge_maxwait: 0 bridge_pathcost: - eth0 50 - eth1 75 bridge_portprio: - eth0 28 - eth1 14 bridge_ports: - eth0 - eth1 bridge_stp: 'off' bridge_waitport: - 1 eth0 - 2 eth1 gateway: null inet: inet mac_address: null mode: manual mtu: null name: br0 subnets: [] type: bridge eth0: address: null gateway: null inet: inet mac_address: c0:d6:9f:2c:e8:80 mode: manual mtu: null name: eth0 subnets: [] type: physical eth1: address: null gateway: null inet: inet mac_address: aa:d6:9f:2c:e8:80 mode: manual mtu: null name: eth1 subnets: [] type: physical routes: [] use_ipv6: false _version: 1 use_ipv6: false auto lo iface lo inet loopback iface eth0 inet manual iface eth1 inet manual iface br0 inet manual bridge_ageing 250 bridge_bridgeprio 22 bridge_fd 1 bridge_gcint 2 bridge_hello 1 bridge_maxage 10 bridge_pathcost eth0 50 bridge_pathcost eth1 75 bridge_portprio eth0 28 bridge_portprio eth1 14 bridge_ports eth0 eth1 bridge_stp off bridge_waitport 1 eth0 bridge_waitport 2 eth1 network: version: 2 ethernets: eth0: match: macaddress: c0:d6:9f:2c:e8:80 set-name: eth0 eth1: match: macaddress: aa:d6:9f:2c:e8:80 set-name: eth1 bridges: br0: interfaces: - eth0 - eth1 parameters: ageing-time: 250 forward-delay: 1 hello-time: 1 max-age: 10 path-cost: eth0: 50 eth1: 75 priority: 22 xenial FINISH -------------- zesty START -------------- DISTRIB_CODENAME=zesty cloud-init 0.7.9-233-ge586fe35-0ubuntu1~17.04.1 Input YAML config: - mac_address: c0:d6:9f:2c:e8:80 name: eth0 type: physical - mac_address: aa:d6:9f:2c:e8:80 name: eth1 type: physical - bridge_interfaces: - eth0 - eth1 name: br0 params: bridge_ageing: 250 bridge_bridgeprio: 22 bridge_fd: 1 bridge_gcint: 2 bridge_hello: 1 bridge_maxage: 10 bridge_maxwait: 0 bridge_pathcost: - eth0 50 - eth1 75 bridge_portprio: - eth0 28 - eth1 14 bridge_stp: 'off' bridge_waitport: - 1 eth0 - 2 eth1 type: bridge version: 1 Internal State !!python/object:cloudinit.net.network_state.NetworkState _network_state: dns: nameservers: [] search: [] interfaces: br0: address: null bridge_ageing: 250 bridge_bridgeprio: 22 bridge_fd: 1 bridge_gcint: 2 bridge_hello: 1 bridge_maxage: 10 bridge_maxwait: 0 bridge_pathcost: - eth0 50 - eth1 75 bridge_portprio: - eth0 28 - eth1 14 bridge_ports: - eth0 - eth1 bridge_stp: 'off' bridge_waitport: - 1 eth0 - 2 eth1 gateway: null inet: inet mac_address: null mode: manual mtu: null name: br0 subnets: [] type: bridge eth0: address: null gateway: null inet: inet mac_address: c0:d6:9f:2c:e8:80 mode: manual mtu: null name: eth0 subnets: [] type: physical eth1: address: null gateway: null inet: inet mac_address: aa:d6:9f:2c:e8:80 mode: manual mtu: null name: eth1 subnets: [] type: physical routes: [] use_ipv6: false _version: 1 use_ipv6: false Input YAML config: - mac_address: c0:d6:9f:2c:e8:80 name: eth0 type: physical - mac_address: aa:d6:9f:2c:e8:80 name: eth1 type: physical - bridge_interfaces: - eth0 - eth1 name: br0 params: bridge_ageing: 250 bridge_bridgeprio: 22 bridge_fd: 1 bridge_gcint: 2 bridge_hello: 1 bridge_maxage: 10 bridge_maxwait: 0 bridge_pathcost: - eth0 50 - eth1 75 bridge_portprio: - eth0 28 - eth1 14 bridge_stp: 'off' bridge_waitport: - 1 eth0 - 2 eth1 type: bridge version: 1 Internal State !!python/object:cloudinit.net.network_state.NetworkState _network_state: dns: nameservers: [] search: [] interfaces: br0: address: null bridge_ageing: 250 bridge_bridgeprio: 22 bridge_fd: 1 bridge_gcint: 2 bridge_hello: 1 bridge_maxage: 10 bridge_maxwait: 0 bridge_pathcost: - eth0 50 - eth1 75 bridge_portprio: - eth0 28 - eth1 14 bridge_ports: - eth0 - eth1 bridge_stp: 'off' bridge_waitport: - 1 eth0 - 2 eth1 gateway: null inet: inet mac_address: null mode: manual mtu: null name: br0 subnets: [] type: bridge eth0: address: null gateway: null inet: inet mac_address: c0:d6:9f:2c:e8:80 mode: manual mtu: null name: eth0 subnets: [] type: physical eth1: address: null gateway: null inet: inet mac_address: aa:d6:9f:2c:e8:80 mode: manual mtu: null name: eth1 subnets: [] type: physical routes: [] use_ipv6: false _version: 1 use_ipv6: false auto lo iface lo inet loopback iface eth0 inet manual iface eth1 inet manual iface br0 inet manual bridge_ageing 250 bridge_bridgeprio 22 bridge_fd 1 bridge_gcint 2 bridge_hello 1 bridge_maxage 10 bridge_pathcost eth0 50 bridge_pathcost eth1 75 bridge_portprio eth0 28 bridge_portprio eth1 14 bridge_ports eth0 eth1 bridge_stp off bridge_waitport 1 eth0 bridge_waitport 2 eth1 network: version: 2 ethernets: eth0: match: macaddress: c0:d6:9f:2c:e8:80 set-name: eth0 eth1: match: macaddress: aa:d6:9f:2c:e8:80 set-name: eth1 bridges: br0: interfaces: - eth0 - eth1 parameters: ageing-time: 250 forward-delay: 1 hello-time: 1 max-age: 10 path-cost: eth0: 50 eth1: 75 priority: 22 zesty FINISH --------------