From c0e406f06646b565cce3268173806c206049181e Mon Sep 17 00:00:00 2001 From: Jiri Olsa Date: Wed, 6 Mar 2024 20:46:05 +0000 Subject: [PATCH] tetragon: Plug in the config object Signed-off-by: Jiri Olsa --- cmd/tetragon/main.go | 8 ++++++++ docs/data/tetragon_flags.yaml | 2 ++ pkg/option/config.go | 2 ++ pkg/option/flags.go | 5 +++++ 4 files changed, 17 insertions(+) diff --git a/cmd/tetragon/main.go b/cmd/tetragon/main.go index 56cf463a676..57f79d9b679 100644 --- a/cmd/tetragon/main.go +++ b/cmd/tetragon/main.go @@ -28,6 +28,7 @@ import ( "github.com/cilium/tetragon/pkg/bugtool" "github.com/cilium/tetragon/pkg/checkprocfs" "github.com/cilium/tetragon/pkg/cilium" + "github.com/cilium/tetragon/pkg/config" "github.com/cilium/tetragon/pkg/defaults" "github.com/cilium/tetragon/pkg/encoder" "github.com/cilium/tetragon/pkg/exporter" @@ -436,6 +437,13 @@ func tetragonExecute() error { base.Unload() }() + onReconfig := func(data *config.Data) { + option.Config.DisableKprobeMulti = data.DisableKprobeMulti + } + + cfg := config.NewConfig(option.Config.ConfigFile, 5*time.Second, onReconfig) + defer cfg.Stop() + // now that the base sensor was loaded, we can start the sensor manager close(sensorMgWait) sensorMgWait = nil diff --git a/docs/data/tetragon_flags.yaml b/docs/data/tetragon_flags.yaml index 42a5e5ddcee..57acfd9afb7 100644 --- a/docs/data/tetragon_flags.yaml +++ b/docs/data/tetragon_flags.yaml @@ -10,6 +10,8 @@ options: usage: Location of btf - name: config-dir usage: Configuration directory that contains a file for each option + - name: config-file + usage: configuration file - name: cpuprofile usage: Store CPU profile into provided file - name: data-cache-size diff --git a/pkg/option/config.go b/pkg/option/config.go index bd0dec4894f..0dc37a417d8 100644 --- a/pkg/option/config.go +++ b/pkg/option/config.go @@ -86,6 +86,8 @@ type config struct { EnableTracingPolicyCRD bool ExposeKernelAddresses bool + + ConfigFile string } var ( diff --git a/pkg/option/flags.go b/pkg/option/flags.go index 56b2d4a9fcb..9706af45942 100644 --- a/pkg/option/flags.go +++ b/pkg/option/flags.go @@ -92,6 +92,8 @@ const ( KeyExposeKernelAddresses = "expose-kernel-addresses" KeyGenerateDocs = "generate-docs" + + KeyConfigFile = "config-file" ) func ReadAndSetFlags() error { @@ -172,6 +174,7 @@ func ReadAndSetFlags() error { Config.ExposeKernelAddresses = viper.GetBool(KeyExposeKernelAddresses) + Config.ConfigFile = viper.GetString(KeyConfigFile) return nil } @@ -278,4 +281,6 @@ func AddFlags(flags *pflag.FlagSet) { flags.Bool(KeyExposeKernelAddresses, false, "Expose real kernel addresses in events stack traces") flags.Bool(KeyGenerateDocs, false, "Generate documentation in YAML format to stdout") + + flags.String(KeyConfigFile, "", "configuration file") }