Currently the ordering of network interfaces in the seed VM is
non-deterministic. This happens because we apply the 'unique' filter to
the network_interfaces list, which does not guarantee a deterministic
ordering. This list is then transformed and passed to the
stackhpc.libvirt-vm role.
There are two consequences of this:
* it is not possible to determine which interface names should be used
prior to creating a seed VM
* if a seed VM is recreated, the interface ordering may change
This change fixes the issue by sorting the network_interfaces list
alphabetically before it is transformed and passed to the
stackhpc.libvirt-vm.
A new 'seed_vm_interfaces' variable is also added, which allows for
customisation of the VM's interfaces - potentially allowing for more
complex setups such as trunked VLANs.
Story: 2007259
Task: 38621
There is a second issue, which is that if the seed VM has a
network interface not configured with a gateway, cloud-init will fail to
configure the network interfaces on the host. This has been observed on
CentOS 8, but is probably more tied to the version of cloud-init, and
may affect CentOS 7. The following error is seen in the cloud-init logs:
KeyError: 'gateway'
This change has been addressed in the jriguera.configdrive role, and
this change updates the version used in requirements.yml.
Story: 2007769
Task: 39993
Change-Id: Ib6ab41a3ba320a1fe15d0d23561fad2fab7861e6