voxpupuli / puppet-systemd

Puppet module to manage systemd
https://forge.puppet.com/puppet/systemd
Apache License 2.0
52 stars 142 forks source link

Add support for systemd link files #470

Closed danielchristianschroeter closed 3 weeks ago

danielchristianschroeter commented 3 weeks ago

Feature Request:

I would like to request support for .link files in the puppet-systemd module, allowing users to configure network device properties using systemd's network device configuration files.

Rationale:

Systemd's .link files provide a powerful and flexible way to configure network devices. By adding support for these files, the puppet-systemd module can offer more comprehensive network configuration capabilities.

Example Use Case:

Below is a working example for Ubuntu 22.04 to change the RxBufferSize for a network interface:

Create a file /etc/systemd/network/10-custom.link with the following content:

[Match]
OriginalName=ens192

[Link]
RxBufferSize=4096

To apply the changes immediately, execute: systemctl restart systemd-udev-trigger

Validate the changes with: ethtool -g ens192

References:

systemd.link man page

This enhancement would significantly benefit users who need to configure network devices with specific parameters using systemd's capabilities.

kenyon commented 3 weeks ago

Link files (and netdev, and any other files that belong in /etc/systemd/network) are supported already by https://github.com/voxpupuli/puppet-systemd/blob/38bd9da778828c68cae3e45b444539746fbf6df5/manifests/network.pp. Simply pass the filename and content the same as you would for a network file.

I am using this here, for example: https://github.com/kenyon/puppet/blob/b8240ffc42c2ff8b128b4ae1255487b0f41d2443/data/nodes/router.kenyonralph.com.yaml#L63-L74

Is there somewhere else that the module should be supporting link files?

danielchristianschroeter commented 3 weeks ago

Thank you! This is what I searched for. It still will not reload systemd-udev-trigger, but anyway this is enough for me for now.