diff --git a/systemd/defaults.yaml b/systemd/defaults.yaml index 3febe6c96c42ae92e8f05e696728b427951e470a..4a7e579241786a8561c845ba4d3db9e604cac230 100644 --- a/systemd/defaults.yaml +++ b/systemd/defaults.yaml @@ -19,6 +19,8 @@ systemd: PollIntervalMaxSec: 2048 networkd: + # networkctl reload is available since systemd 244 + networkctl_reload: false pkg: {} path: /etc/systemd/network service: systemd-networkd diff --git a/systemd/networkd/profiles.sls b/systemd/networkd/profiles.sls index 478fba7cb63d0d205754894c2b9de446570b4053..7c5591167fcc6c5e05127dbc4ea2e908509ab372 100644 --- a/systemd/networkd/profiles.sls +++ b/systemd/networkd/profiles.sls @@ -5,8 +5,10 @@ {%- set networkd = systemd.get('networkd', {}) %} {%- set profiles = networkd.get('profiles', {}) %} +{%- if networkd.networkctl_reload %} include: - - systemd.reload + - systemd.networkd.reload +{%- endif %} {% if profiles is mapping %} {% for networkdprofile, types in profiles.items() %} @@ -23,8 +25,10 @@ include: - dir_mode: 755 - context: config: {{ profileconfig|json }} +{%- if networkd.networkctl_reload %} - watch_in: - - cmd: reload_systemd_configuration - {% endfor %} -{% endfor %} -{% endif %} + - cmd: systemd-networkd-reload-cmd-wait +{%- endif %} + {%- endfor %} +{%- endfor %} +{%- endif %} diff --git a/systemd/networkd/reload.sls b/systemd/networkd/reload.sls new file mode 100644 index 0000000000000000000000000000000000000000..4ee5dd92db904ca43a4af56619381d79ad362a86 --- /dev/null +++ b/systemd/networkd/reload.sls @@ -0,0 +1,9 @@ +include: + - systemd.networkd + +systemd-networkd-reload-cmd-wait: + cmd.wait: + - name: networkctl reload + - runas: root + - require: + - service: networkd diff --git a/systemd/osmap.yaml b/systemd/osmap.yaml index 35f30c141246441cff8969afb2e9dc1688d08a4a..3269553cfe37bb56f2200ce16ba5300bd6fda377 100644 --- a/systemd/osmap.yaml +++ b/systemd/osmap.yaml @@ -14,6 +14,7 @@ Fedora: pkgs_extra: - python3-systemd networkd: + networkctl_reload: true pkg: {} resolved: pkg: {}