This change adds support for network configuration via systemd-networkd
on Ubuntu systems.
This is implemented via an Ansible Galaxy role,
stackhpc.systemd_networkd which was forked from
aruhier.systemd_networkd. Several improvements were made in
https://github.com/stackhpc/ansible-role-systemd-networkd/pull/1,
including:
* Add support for removing unexpected config files
* Use become where necessary
* Refactor config generation into a single task to improve performance
The systemd_networkd role does not add much abstraction on top of the
systemd-networkd configuration file format, which provides a lot of
flexibility at the expense of additional code in Kayobe. This code is
implemented as filter plugins, similarly to the existing
MichaelRigart.interfaces role.
This patch includes support for:
* Ethernet interfaces
* bridges
* bonds
* VLANs
* virtual Ethernet pairs (to connect Linux bridges and OVS bridges)
* static IP addresses
* static routes
* MTU
Some network attributes are currently not supported for
systemd-networkd:
* rules
* route options
* ethtool_opts
* zone
* allowed addresses
Story: 2004960
Task: 41881
Change-Id: I248b5bb9ce5a80a07a2a311cb3aca6daca920720