summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorNataliia Solomko <natalirs1985@gmail.com>2026-07-02 11:46:45 +0300
committerNataliia Solomko <natalirs1985@gmail.com>2026-07-02 15:34:17 +0300
commitf56f37924f05bcfebd05342ccb40c53001b3409a (patch)
tree81d34c79d743cea47d827e4424ae9ac3182c0e97 /src
parent063e007a5a8eac3bb9ad101206dc94734eeaa595 (diff)
downloadvyos-1x-f56f37924f05bcfebd05342ccb40c53001b3409a.tar.gz
vyos-1x-f56f37924f05bcfebd05342ccb40c53001b3409a.zip
T9002: grant CAP_NET_RAW to blackbox-exporter when ICMP modules are configured
The blackbox-exporter runs as node_exporter user which cannot create ICMP sockets due to restricted ping_group_range. Add CAP_NET_RAW capability to the systemd service when ICMP modules are configured. In non-VRF mode, use systemd AmbientCapabilities/CapabilityBoundingSet. In VRF mode, replace runuser with setpriv to preserve the capability across the UID change.
Diffstat (limited to 'src')
-rwxr-xr-xsrc/conf_mode/service_monitoring_prometheus.py8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/conf_mode/service_monitoring_prometheus.py b/src/conf_mode/service_monitoring_prometheus.py
index b02f9f154..79b557329 100755
--- a/src/conf_mode/service_monitoring_prometheus.py
+++ b/src/conf_mode/service_monitoring_prometheus.py
@@ -20,6 +20,8 @@ from sys import exit
from vyos.config import Config
from vyos.configdict import is_node_changed
+from vyos.configdict import node_changed
+from vyos.configdiff import Diff
from vyos.configverify import verify_vrf
from vyos.template import render
from vyos.utils.process import call
@@ -76,6 +78,12 @@ def get_config(config=None):
tmp = False
for node in ['vrf', 'config-file']:
tmp = tmp or is_node_changed(conf, base + ['blackbox-exporter', node])
+ modules_changed = node_changed(
+ conf,
+ base + ['blackbox-exporter', 'modules'],
+ expand_nodes=Diff.ADD | Diff.DELETE,
+ )
+ tmp = tmp or 'icmp' in modules_changed
if tmp:
monitoring.update({'blackbox_exporter_restart_required': {}})