@@ -28,6 +28,84 @@ which might take some work on older kernels.
2828
2929### What are the Linux kernel configuration options needed to run Tetragon?
3030
31+ Tetragon requires specific kernel configuration options to function properly.
32+ You can verify your kernel configuration and runtime capabilities using the
33+ following approaches.
34+
35+ #### Check kernel configuration with ` tetra probe config `
36+
37+ As a first step to verify your kernel configuration, you can use the
38+ ` tetra probe config ` command. This will output a list of detected kernel
39+ features relevant to Tetragon. Missing features can indicate that your kernel
40+ is not configured correctly.
41+
42+ ``` shell
43+ tetra probe config
44+ ```
45+
46+ The output should be similar to this:
47+
48+ ```
49+ ONFIG_AUDIT:y
50+ CONFIG_AUDITSYSCALL:y
51+ CONFIG_BPF:y
52+ CONFIG_BPF_EVENTS:y
53+ CONFIG_BPF_JIT:y
54+ CONFIG_BPF_JIT_DEFAULT_ON:y
55+ CONFIG_BPF_KPROBE_OVERRIDE:y
56+ CONFIG_BPF_SYSCALL:y
57+ CONFIG_CGROUPS:y
58+ CONFIG_DEBUG_INFO_BTF:y
59+ CONFIG_DEBUG_INFO_BTF_MODULES:y
60+ CONFIG_FTRACE_SYSCALLS:y
61+ CONFIG_HAVE_BPF_JIT:n
62+ CONFIG_HAVE_EBPF_JIT:y
63+ CONFIG_SECURITY:y
64+ ```
65+
66+ #### Probe features at runtime with ` tetra probe `
67+
68+ To probe if your kernel has sufficient features turned on at runtime, you can
69+ run ` tetra probe ` , this command requires root privileges, notably to load probe
70+ BPF programs:
71+
72+ ``` shell
73+ sudo tetra probe
74+ ```
75+
76+ You can also run this command directly from the tetragon container image on a
77+ Kubernetes cluster node. For example:
78+
79+ ``` shell
80+ kubectl run bpf-probe --image=quay.io/cilium/tetragon-ci:latest \
81+ --privileged --restart=Never -it --rm --command -- tetra probe
82+ ```
83+
84+ The output should be similar to this (with boolean values depending on your
85+ actual configuration):
86+
87+ ```
88+ override_return: true
89+ buildid: true
90+ kprobe_multi: false
91+ uprobe_multi false
92+ fmodret: true
93+ fmodret_syscall: true
94+ signal: true
95+ large: true
96+ link_pin: true
97+ lsm: false
98+ missed_stats_kprobe_multi: false
99+ missed_stats_kprobe: false
100+ batch_update: true
101+ uprobe_refctroff: true
102+ audit_loginuid: true
103+ probe_write_user: true
104+ uprobe_regs_change: false
105+ ```
106+
107+ #### List of required kernel configurations
108+
31109This is the list of needed configuration options, note that this might evolve
32110quickly with new Tetragon features:
33111
@@ -79,33 +157,6 @@ CONFIG_MEMCG_V1=y
79157CONFIG_CPUSETS_V1=y
80158```
81159
82- At runtime, to probe if your kernel has sufficient features turned on, you can
83- run ` tetra ` with root privileges with the ` probe ` command:
84-
85- ``` shell
86- sudo tetra probe
87- ```
88-
89- You can also run this command directly from the tetragon container image on a
90- Kubernetes cluster node. For example:
91-
92- ``` shell
93- kubectl run bpf-probe --image=quay.io/cilium/tetragon-ci:latest --privileged --restart=Never -it --rm --command -- tetra probe
94- ```
95-
96- The output should be similar to this (with boolean values depending on your
97- actual configuration):
98-
99- ```
100- override_return: true
101- buildid: true
102- kprobe_multi: false
103- fmodret: true
104- fmodret_syscall: true
105- signal: true
106- large: true
107- ```
108-
109160### Tetragon failed to start complaining about a missing BTF file
110161
111162You might have encountered the following issues:
0 commit comments