Current logic was relying on iteration inside the template. However,
since config_template module was used to deliver network configuration
it was merging sections having same name together.
While this behaviour is correct one for config_template as all sections
must be unique from ConfigParser perspective and in order to apply
overrides properly, it was not suiting the way how routes should be
defined in networkd configuration.
To workaround the issue we place routes separately under <network>.d
directory, which should be supported by systemd [1]
[1] https://www.freedesktop.org/software/systemd/man/latest/systemd.network.html
Closes-Bug: #2045819
Change-Id: I01aa44dcdc85e32d18dd52bcd4878a9017fb6ead
Changes to external roles cause some variables to be passed in
as empty strings which result in invalid config and InvalidArgument
errors.
This could be addressed here or in the calling role.
Change-Id: Iee71e9839d4c8d318c2c36152d966dd5a1b88111
The current template results in a default route being added to the
routing table rather than a route specific to the destination
requested.
Change-Id: I0ef53631989ea2dc12d2540edeed95d0a466353b
In order to create multiple vlans from the same interface, VLAN
key must be repeated multiple times. At the moment our role limits
that since vlan can not be a list. We adding an option for vlan being a list
at the same time keeping backwards compatability.
Change-Id: I94bf2157e1e95c3fd5af318eac8238cd6c3b6fdc
This patch fixes linter errors, updates tests, and adds the MTUBytes
interface configuration option to the systemd .network file to support
live MTU changes upon restart of systemd-networkd. Without it, MTU
changes will only be effective upon boot (might only affect Focal).
Change-Id: I05da4036b0ddc3fb88ba958f413a32fa6819de61
Add ipforward bool optional setting to systemd_networks to enable
or disable forwarding for a given interface. IPForward is disabled
by default.
Change-Id: Iaea33b1bdde1964f38612ab8c278fed4985d390b
The link options being set within the network files, which functional,
does not expose all of the link capabilities we have within a specific
link file. This change implements link files per network interface
giving the user the ability to customize links as they need.
Change-Id: Ie999c541a6a566141e81c6d9f95b8a30bbbefa8c
Signed-off-by: Kevin Carter <kevin.carter@rackspace.com>
The interface cleanup was generating a script that could be used to run
a cleanup whenever required. While this worked it would rapidly become
out of date, especially when multiple roles are calling this role. This
change adds a prefix which deployer can use to ensure the network
interface files are marked which will ensure we're limiting the
possibility of collisions.
The cleanup process will now use this prefix to search for and remove
any network interface file that matches the given prefix.
Change-Id: Ife5c179d27925cd2e71d3d086a731e6c13b12965
Signed-off-by: Kevin Carter <kevin.carter@rackspace.com>
If the new variable systemd_resolved is defined, resolved will be setup
within the environment. This will configure the global configuration
file and restart the service.
A test has been added to ensure this code path is exercised on every
commit. It should be noted that suse does not have a resolved package so
this functionality is disabled when a suse system is encountered. This
should be revised as soon as suse has resolved available.
Change-Id: I85278719bc5b7158244fd44c65d4366935555780
Signed-off-by: Kevin Carter <kevin.carter@rackspace.com>
- Allow configuring the default filename format
- Allow configuring a filename override on a per netdev/network
basis.
Change-Id: I801fe5604d543ae36daf5bd1764ef1035644ea44