Description
I ran into an issue configuring the default network pool where qemu won't modify the subnet like I want.
The playbook runs just fine, but doesn't change anything.
- name: Basic provisioning of VM hosts
hosts: vm_hosts
roles:
- role: stackhpc.libvirt-host
libvirt_host_pools:
- name: default
type: dir
path: /var/lib/libvirt/images
mode: 755
owner: libvirt-qemu
group: kvm
libvirt_host_networks:
- name: default
mode: nat
bridge: virbr0
domain: qemu.local
ip: 192.168.123.254
netmask: 255.255.255.0
dhcp_start: 192.168.123.100
dhcp_end: 192.168.123.250
Note the different subnet from default .122 and a different DHCP pool.
But if I change the name and bridge parameters, a new network will be created with my desired parameters.
I have found that stopping and deleting the default network from within Virtual Machine Manager GUI will leave qemu open for provisioning like I want (stopping alone is not enough). So this is currently work-around-able, clumsy-like.
It would seem that the task for provisioning the network only checks for its existence, but not its parameters.
I also tried changing virt_net command from define to modify, but that failed because it's not supported.
I think it should be possible (info, facts, list_nets?) to retrieve current configuration, determine that it doesn't match, then deactivate and delete the network. Only after that, create it anew from given parameters.
But, there's a catch:
I'm pretty sure this would be impossible with running guests (at least I HOPE qemu would not allow deleting a network in use), so this approach would only work while provisioning a host from scratch. I'm talking about scenario where the parameters would be found to differ, of course.
Still worth investigating / trying, IMO.
If you feel so too, let me know, I'll try to whip up a PR