Skip to content

Commit 84f4f31

Browse files
authored
NETOBSERV-2500: hot-reload filters (#2337)
* NETOBSERV-2500: hot-reload filters * bump flp * Use dynamic config reload for subnet labels Use explicit dynamic vs static config flag Refactor flp_pipeline_builder.go to break down stages config into smaller functions * bump flp
1 parent e732ef5 commit 84f4f31

File tree

110 files changed

+3361
-1106
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

110 files changed

+3361
-1106
lines changed

go.mod

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@ require (
77
github.com/coreos/go-semver v0.3.1
88
github.com/google/go-cmp v0.7.0
99
github.com/grafana/loki/operator/apis/loki v0.0.0-20241021105923-5e970e50b166
10-
github.com/netobserv/flowlogs-pipeline v1.10.0-community.0.20251210194924-86e5b0087faa
11-
github.com/netobserv/netobserv-ebpf-agent v1.10.0-community.0.20260105153759-648a4f37b74d
10+
github.com/netobserv/flowlogs-pipeline v1.10.1-community.0.20260128081215-6575ca967373
11+
github.com/netobserv/netobserv-ebpf-agent v1.10.1-community
1212
github.com/onsi/ginkgo/v2 v2.27.5
1313
github.com/onsi/gomega v1.39.0
1414
github.com/openshift/api v0.0.0-20250707164913-2cd5821c9080
@@ -34,7 +34,7 @@ require (
3434
github.com/antlr4-go/antlr/v4 v4.13.1 // indirect
3535
github.com/beorn7/perks v1.0.1 // indirect
3636
github.com/blang/semver/v4 v4.0.0 // indirect
37-
github.com/cenkalti/backoff/v5 v5.0.2 // indirect
37+
github.com/cenkalti/backoff/v5 v5.0.3 // indirect
3838
github.com/cespare/xxhash/v2 v2.3.0 // indirect
3939
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect
4040
github.com/emicklei/go-restful/v3 v3.12.2 // indirect
@@ -57,7 +57,7 @@ require (
5757
github.com/google/gnostic-models v0.7.0 // indirect
5858
github.com/google/pprof v0.0.0-20250820193118-f64d9cf942d6 // indirect
5959
github.com/google/uuid v1.6.0 // indirect
60-
github.com/grpc-ecosystem/grpc-gateway/v2 v2.27.1 // indirect
60+
github.com/grpc-ecosystem/grpc-gateway/v2 v2.27.3 // indirect
6161
github.com/inconshreveable/mousetrap v1.1.0 // indirect
6262
github.com/josharian/intern v1.0.0 // indirect
6363
github.com/jpillora/backoff v1.0.0 // indirect
@@ -79,13 +79,13 @@ require (
7979
github.com/x448/float16 v0.8.4 // indirect
8080
go.opentelemetry.io/auto/sdk v1.2.1 // indirect
8181
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.62.0 // indirect
82-
go.opentelemetry.io/otel v1.38.0 // indirect
83-
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.37.0 // indirect
84-
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.37.0 // indirect
85-
go.opentelemetry.io/otel/metric v1.38.0 // indirect
86-
go.opentelemetry.io/otel/sdk v1.38.0 // indirect
87-
go.opentelemetry.io/otel/trace v1.38.0 // indirect
88-
go.opentelemetry.io/proto/otlp v1.7.0 // indirect
82+
go.opentelemetry.io/otel v1.39.0 // indirect
83+
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.39.0 // indirect
84+
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.39.0 // indirect
85+
go.opentelemetry.io/otel/metric v1.39.0 // indirect
86+
go.opentelemetry.io/otel/sdk v1.39.0 // indirect
87+
go.opentelemetry.io/otel/trace v1.39.0 // indirect
88+
go.opentelemetry.io/proto/otlp v1.9.0 // indirect
8989
go.uber.org/multierr v1.11.0 // indirect
9090
go.yaml.in/yaml/v2 v2.4.3 // indirect
9191
go.yaml.in/yaml/v3 v3.0.4 // indirect
@@ -94,15 +94,15 @@ require (
9494
golang.org/x/net v0.48.0 // indirect
9595
golang.org/x/oauth2 v0.34.0 // indirect
9696
golang.org/x/sync v0.19.0 // indirect
97-
golang.org/x/sys v0.39.0 // indirect
97+
golang.org/x/sys v0.40.0 // indirect
9898
golang.org/x/term v0.38.0 // indirect
9999
golang.org/x/text v0.32.0 // indirect
100100
golang.org/x/time v0.12.0 // indirect
101101
golang.org/x/tools v0.39.0 // indirect
102102
gomodules.xyz/jsonpatch/v2 v2.5.0 // indirect
103-
google.golang.org/genproto/googleapis/api v0.0.0-20251022142026-3a174f9686a8 // indirect
104-
google.golang.org/genproto/googleapis/rpc v0.0.0-20251022142026-3a174f9686a8 // indirect
105-
google.golang.org/grpc v1.77.0 // indirect
103+
google.golang.org/genproto/googleapis/api v0.0.0-20251202230838-ff82c1b0f217 // indirect
104+
google.golang.org/genproto/googleapis/rpc v0.0.0-20251202230838-ff82c1b0f217 // indirect
105+
google.golang.org/grpc v1.78.0 // indirect
106106
google.golang.org/protobuf v1.36.11 // indirect
107107
gopkg.in/evanphx/json-patch.v4 v4.13.0 // indirect
108108
gopkg.in/inf.v0 v0.9.1 // indirect

go.sum

Lines changed: 34 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@ github.com/blang/semver/v4 v4.0.0 h1:1PFHFE6yCCTv8C1TeyNNarDzntLi7wMI5i/pzqYIsAM
1010
github.com/blang/semver/v4 v4.0.0/go.mod h1:IbckMUScFkM3pff0VJDNKRiT6TG/YpiHIM2yvyW5YoQ=
1111
github.com/bpfman/bpfman-operator v0.5.7-0.20250702114755-642adfde5e43 h1:F1b/LaVDYhv4Pkswbpxxt5ZcyleEWV/tGlw0e/PAIdU=
1212
github.com/bpfman/bpfman-operator v0.5.7-0.20250702114755-642adfde5e43/go.mod h1:B4MTWINV3q+HsbbLrH1oum5KoTFXR3baL+S4anCysNg=
13-
github.com/cenkalti/backoff/v5 v5.0.2 h1:rIfFVxEf1QsI7E1ZHfp/B4DF/6QBAUhmgkxc0H7Zss8=
14-
github.com/cenkalti/backoff/v5 v5.0.2/go.mod h1:rkhZdG3JZukswDf7f0cwqPNk4K0sa+F97BxZthm/crw=
13+
github.com/cenkalti/backoff/v5 v5.0.3 h1:ZN+IMa753KfX5hd8vVaMixjnqRZ3y8CuJKRKj1xcsSM=
14+
github.com/cenkalti/backoff/v5 v5.0.3/go.mod h1:rkhZdG3JZukswDf7f0cwqPNk4K0sa+F97BxZthm/crw=
1515
github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs=
1616
github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
1717
github.com/cilium/ebpf v0.20.0 h1:atwWj9d3NffHyPZzVlx3hmw1on5CLe9eljR8VuHTwhM=
@@ -83,8 +83,8 @@ github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
8383
github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
8484
github.com/grafana/loki/operator/apis/loki v0.0.0-20241021105923-5e970e50b166 h1:cmG5fwmF+0PsyerLecb7CU4bzNRg5+tDgO3PiNxskKo=
8585
github.com/grafana/loki/operator/apis/loki v0.0.0-20241021105923-5e970e50b166/go.mod h1:QggEReYyQzjnwTlj9hMeRaI2M/w3UPAwrMOXYzIyonc=
86-
github.com/grpc-ecosystem/grpc-gateway/v2 v2.27.1 h1:X5VWvz21y3gzm9Nw/kaUeku/1+uBhcekkmy4IkffJww=
87-
github.com/grpc-ecosystem/grpc-gateway/v2 v2.27.1/go.mod h1:Zanoh4+gvIgluNqcfMVTJueD4wSS5hT7zTt4Mrutd90=
86+
github.com/grpc-ecosystem/grpc-gateway/v2 v2.27.3 h1:NmZ1PKzSTQbuGHw9DGPFomqkkLWMC+vZCkfs+FHv1Vg=
87+
github.com/grpc-ecosystem/grpc-gateway/v2 v2.27.3/go.mod h1:zQrxl1YP88HQlA6i9c63DSVPFklWpGX4OWAc9bFuaH4=
8888
github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8=
8989
github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw=
9090
github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY=
@@ -97,8 +97,8 @@ github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnr
9797
github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo=
9898
github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8=
9999
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
100-
github.com/klauspost/compress v1.18.0 h1:c/Cqfb0r+Yi+JtIEq73FWXVkRonBlf0CRNYc8Zttxdo=
101-
github.com/klauspost/compress v1.18.0/go.mod h1:2Pp+KzxcywXVXMr50+X0Q/Lsb43OQHYWRCY2AiWywWQ=
100+
github.com/klauspost/compress v1.18.2 h1:iiPHWW0YrcFgpBYhsA6D1+fqHssJscY/Tm/y2Uqnapk=
101+
github.com/klauspost/compress v1.18.2/go.mod h1:R0h/fSBs8DE4ENlcrlib3PsXS61voFxhIs2DeRhCvJ4=
102102
github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
103103
github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=
104104
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
@@ -121,10 +121,10 @@ github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq
121121
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ=
122122
github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f h1:KUppIJq7/+SVif2QVs3tOP0zanoHgBEVAwHxUSIzRqU=
123123
github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U=
124-
github.com/netobserv/flowlogs-pipeline v1.10.0-community.0.20251210194924-86e5b0087faa h1:kBDUEbukEj/vvt+7nL5FprbjXhFYPaZGQElDm58vkdU=
125-
github.com/netobserv/flowlogs-pipeline v1.10.0-community.0.20251210194924-86e5b0087faa/go.mod h1:xotGz14dPOGoNwFOVeIsnK1SDGVuLtMMZSyIV4iK6Lw=
126-
github.com/netobserv/netobserv-ebpf-agent v1.10.0-community.0.20260105153759-648a4f37b74d h1:3qm/NFqvCk/wAlOOD0FiENw/YXM56BBRi5Y80ZzxyUo=
127-
github.com/netobserv/netobserv-ebpf-agent v1.10.0-community.0.20260105153759-648a4f37b74d/go.mod h1:0BEBkQnVX4lMg/PQWbScZNI6A/mYPGONi3QqRFdVGPw=
124+
github.com/netobserv/flowlogs-pipeline v1.10.1-community.0.20260128081215-6575ca967373 h1:/XZ/t0+NlXawU7VwEkZ590UVN7bC6kCDLPCCB9zNCpE=
125+
github.com/netobserv/flowlogs-pipeline v1.10.1-community.0.20260128081215-6575ca967373/go.mod h1:vOXMJwWooj/RiGkLYS9WXSoiGPPWAFLXIYJ2vzIFWU4=
126+
github.com/netobserv/netobserv-ebpf-agent v1.10.1-community h1:9elSOcMkEQeztWH6w8eB3cRZUApaBvexZNQ/xExXXnA=
127+
github.com/netobserv/netobserv-ebpf-agent v1.10.1-community/go.mod h1:l9igyOCKLjPGD49AOuMWPbwdUTPHqid1fvC8dSYzOR4=
128128
github.com/netsampler/goflow2 v1.3.7 h1:XZaTy8kkMnGXpJ9hS3KbO1McyrFTpVNhVFEx9rNhMmc=
129129
github.com/netsampler/goflow2 v1.3.7/go.mod h1:4UZsVGVAs//iMCptUHn3WNScztJeUhZH7kDW2+/vDdQ=
130130
github.com/onsi/ginkgo/v2 v2.27.5 h1:ZeVgZMx2PDMdJm/+w5fE/OyG6ILo1Y3e+QX4zSR0zTE=
@@ -199,22 +199,22 @@ go.opentelemetry.io/auto/sdk v1.2.1 h1:jXsnJ4Lmnqd11kwkBV2LgLoFMZKizbCi5fNZ/ipaZ
199199
go.opentelemetry.io/auto/sdk v1.2.1/go.mod h1:KRTj+aOaElaLi+wW1kO/DZRXwkF4C5xPbEe3ZiIhN7Y=
200200
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.62.0 h1:Hf9xI/XLML9ElpiHVDNwvqI0hIFlzV8dgIr35kV1kRU=
201201
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.62.0/go.mod h1:NfchwuyNoMcZ5MLHwPrODwUF1HWCXWrL31s8gSAdIKY=
202-
go.opentelemetry.io/otel v1.38.0 h1:RkfdswUDRimDg0m2Az18RKOsnI8UDzppJAtj01/Ymk8=
203-
go.opentelemetry.io/otel v1.38.0/go.mod h1:zcmtmQ1+YmQM9wrNsTGV/q/uyusom3P8RxwExxkZhjM=
204-
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.37.0 h1:Ahq7pZmv87yiyn3jeFz/LekZmPLLdKejuO3NcK9MssM=
205-
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.37.0/go.mod h1:MJTqhM0im3mRLw1i8uGHnCvUEeS7VwRyxlLC78PA18M=
206-
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.37.0 h1:EtFWSnwW9hGObjkIdmlnWSydO+Qs8OwzfzXLUPg4xOc=
207-
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.37.0/go.mod h1:QjUEoiGCPkvFZ/MjK6ZZfNOS6mfVEVKYE99dFhuN2LI=
208-
go.opentelemetry.io/otel/metric v1.38.0 h1:Kl6lzIYGAh5M159u9NgiRkmoMKjvbsKtYRwgfrA6WpA=
209-
go.opentelemetry.io/otel/metric v1.38.0/go.mod h1:kB5n/QoRM8YwmUahxvI3bO34eVtQf2i4utNVLr9gEmI=
210-
go.opentelemetry.io/otel/sdk v1.38.0 h1:l48sr5YbNf2hpCUj/FoGhW9yDkl+Ma+LrVl8qaM5b+E=
211-
go.opentelemetry.io/otel/sdk v1.38.0/go.mod h1:ghmNdGlVemJI3+ZB5iDEuk4bWA3GkTpW+DOoZMYBVVg=
212-
go.opentelemetry.io/otel/sdk/metric v1.38.0 h1:aSH66iL0aZqo//xXzQLYozmWrXxyFkBJ6qT5wthqPoM=
213-
go.opentelemetry.io/otel/sdk/metric v1.38.0/go.mod h1:dg9PBnW9XdQ1Hd6ZnRz689CbtrUp0wMMs9iPcgT9EZA=
214-
go.opentelemetry.io/otel/trace v1.38.0 h1:Fxk5bKrDZJUH+AMyyIXGcFAPah0oRcT+LuNtJrmcNLE=
215-
go.opentelemetry.io/otel/trace v1.38.0/go.mod h1:j1P9ivuFsTceSWe1oY+EeW3sc+Pp42sO++GHkg4wwhs=
216-
go.opentelemetry.io/proto/otlp v1.7.0 h1:jX1VolD6nHuFzOYso2E73H85i92Mv8JQYk0K9vz09os=
217-
go.opentelemetry.io/proto/otlp v1.7.0/go.mod h1:fSKjH6YJ7HDlwzltzyMj036AJ3ejJLCgCSHGj4efDDo=
202+
go.opentelemetry.io/otel v1.39.0 h1:8yPrr/S0ND9QEfTfdP9V+SiwT4E0G7Y5MO7p85nis48=
203+
go.opentelemetry.io/otel v1.39.0/go.mod h1:kLlFTywNWrFyEdH0oj2xK0bFYZtHRYUdv1NklR/tgc8=
204+
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.39.0 h1:f0cb2XPmrqn4XMy9PNliTgRKJgS5WcL/u0/WRYGz4t0=
205+
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.39.0/go.mod h1:vnakAaFckOMiMtOIhFI2MNH4FYrZzXCYxmb1LlhoGz8=
206+
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.39.0 h1:in9O8ESIOlwJAEGTkkf34DesGRAc/Pn8qJ7k3r/42LM=
207+
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.39.0/go.mod h1:Rp0EXBm5tfnv0WL+ARyO/PHBEaEAT8UUHQ6AGJcSq6c=
208+
go.opentelemetry.io/otel/metric v1.39.0 h1:d1UzonvEZriVfpNKEVmHXbdf909uGTOQjA0HF0Ls5Q0=
209+
go.opentelemetry.io/otel/metric v1.39.0/go.mod h1:jrZSWL33sD7bBxg1xjrqyDjnuzTUB0x1nBERXd7Ftcs=
210+
go.opentelemetry.io/otel/sdk v1.39.0 h1:nMLYcjVsvdui1B/4FRkwjzoRVsMK8uL/cj0OyhKzt18=
211+
go.opentelemetry.io/otel/sdk v1.39.0/go.mod h1:vDojkC4/jsTJsE+kh+LXYQlbL8CgrEcwmt1ENZszdJE=
212+
go.opentelemetry.io/otel/sdk/metric v1.39.0 h1:cXMVVFVgsIf2YL6QkRF4Urbr/aMInf+2WKg+sEJTtB8=
213+
go.opentelemetry.io/otel/sdk/metric v1.39.0/go.mod h1:xq9HEVH7qeX69/JnwEfp6fVq5wosJsY1mt4lLfYdVew=
214+
go.opentelemetry.io/otel/trace v1.39.0 h1:2d2vfpEDmCJ5zVYz7ijaJdOF59xLomrvj7bjt6/qCJI=
215+
go.opentelemetry.io/otel/trace v1.39.0/go.mod h1:88w4/PnZSazkGzz/w84VHpQafiU4EtqqlVdxWy+rNOA=
216+
go.opentelemetry.io/proto/otlp v1.9.0 h1:l706jCMITVouPOqEnii2fIAuO3IVGBRPV5ICjceRb/A=
217+
go.opentelemetry.io/proto/otlp v1.9.0/go.mod h1:xE+Cx5E/eEHw+ISFkwPLwCZefwVjY+pqKg1qcK03+/4=
218218
go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto=
219219
go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE=
220220
go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0=
@@ -250,8 +250,8 @@ golang.org/x/sync v0.19.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI=
250250
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
251251
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
252252
golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
253-
golang.org/x/sys v0.39.0 h1:CvCKL8MeisomCi6qNZ+wbb0DN9E5AATixKsvNtMoMFk=
254-
golang.org/x/sys v0.39.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks=
253+
golang.org/x/sys v0.40.0 h1:DBZZqJ2Rkml6QMQsZywtnjnnGvHza6BTfYFWY9kjEWQ=
254+
golang.org/x/sys v0.40.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks=
255255
golang.org/x/term v0.38.0 h1:PQ5pkm/rLO6HnxFR7N2lJHOZX6Kez5Y1gDSJla6jo7Q=
256256
golang.org/x/term v0.38.0/go.mod h1:bSEAKrOT1W+VSu9TSCMtoGEOUcKxOKgl3LE5QEF/xVg=
257257
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
@@ -274,12 +274,12 @@ gomodules.xyz/jsonpatch/v2 v2.5.0 h1:JELs8RLM12qJGXU4u/TO3V25KW8GreMKl9pdkk14RM0
274274
gomodules.xyz/jsonpatch/v2 v2.5.0/go.mod h1:AH3dM2RI6uoBZxn3LVrfvJ3E0/9dG4cSrbuBJT4moAY=
275275
gonum.org/v1/gonum v0.16.0 h1:5+ul4Swaf3ESvrOnidPp4GZbzf0mxVQpDCYUQE7OJfk=
276276
gonum.org/v1/gonum v0.16.0/go.mod h1:fef3am4MQ93R2HHpKnLk4/Tbh/s0+wqD5nfa6Pnwy4E=
277-
google.golang.org/genproto/googleapis/api v0.0.0-20251022142026-3a174f9686a8 h1:mepRgnBZa07I4TRuomDE4sTIYieg/osKmzIf4USdWS4=
278-
google.golang.org/genproto/googleapis/api v0.0.0-20251022142026-3a174f9686a8/go.mod h1:fDMmzKV90WSg1NbozdqrE64fkuTv6mlq2zxo9ad+3yo=
279-
google.golang.org/genproto/googleapis/rpc v0.0.0-20251022142026-3a174f9686a8 h1:M1rk8KBnUsBDg1oPGHNCxG4vc1f49epmTO7xscSajMk=
280-
google.golang.org/genproto/googleapis/rpc v0.0.0-20251022142026-3a174f9686a8/go.mod h1:7i2o+ce6H/6BluujYR+kqX3GKH+dChPTQU19wjRPiGk=
281-
google.golang.org/grpc v1.77.0 h1:wVVY6/8cGA6vvffn+wWK5ToddbgdU3d8MNENr4evgXM=
282-
google.golang.org/grpc v1.77.0/go.mod h1:z0BY1iVj0q8E1uSQCjL9cppRj+gnZjzDnzV0dHhrNig=
277+
google.golang.org/genproto/googleapis/api v0.0.0-20251202230838-ff82c1b0f217 h1:fCvbg86sFXwdrl5LgVcTEvNC+2txB5mgROGmRL5mrls=
278+
google.golang.org/genproto/googleapis/api v0.0.0-20251202230838-ff82c1b0f217/go.mod h1:+rXWjjaukWZun3mLfjmVnQi18E1AsFbDN9QdJ5YXLto=
279+
google.golang.org/genproto/googleapis/rpc v0.0.0-20251202230838-ff82c1b0f217 h1:gRkg/vSppuSQoDjxyiGfN4Upv/h/DQmIR10ZU8dh4Ww=
280+
google.golang.org/genproto/googleapis/rpc v0.0.0-20251202230838-ff82c1b0f217/go.mod h1:7i2o+ce6H/6BluujYR+kqX3GKH+dChPTQU19wjRPiGk=
281+
google.golang.org/grpc v1.78.0 h1:K1XZG/yGDJnzMdd/uZHAkVqJE+xIDOcmdSFZkBUicNc=
282+
google.golang.org/grpc v1.78.0/go.mod h1:I47qjTo4OKbMkjA/aOOwxDIiPSBofUtQUI5EfpWvW7U=
283283
google.golang.org/protobuf v1.36.11 h1:fV6ZwhNocDyBLK0dj+fg8ektcVegBBuEolpbTQyBNVE=
284284
google.golang.org/protobuf v1.36.11/go.mod h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco=
285285
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=

internal/controller/ebpf/agent_controller_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -216,7 +216,7 @@ func TestBpfmanConfig(t *testing.T) {
216216
assert.Equal(t, corev1.EnvVar{Name: "EBPF_PROGRAM_MANAGER_MODE", Value: "true"}, ds.Spec.Template.Spec.Containers[0].Env[0])
217217
assert.Equal(t, "bpfman-maps", ds.Spec.Template.Spec.Volumes[1].Name)
218218
assert.Equal(t, map[string]string{
219-
"csi.bpfman.io/maps": "direct_flows,aggregated_flows,aggregated_flows_dns,aggregated_flows_pkt_drop,aggregated_flows_network_events,aggregated_flows_xlat,additional_flow_metrics,packet_record,dns_flows,global_counters,filter_map,peer_filter_map,ipsec_ingress_map,ipsec_egress_map",
219+
"csi.bpfman.io/maps": "direct_flows,aggregated_flows,aggregated_flows_dns,aggregated_flows_pkt_drop,aggregated_flows_network_events,aggregated_flows_xlat,additional_flow_metrics,packet_record,dns_flows,global_counters,filter_map,peer_filter_map,ipsec_ingress_map,ipsec_egress_map,ssl_data_event_map,dns_name_map",
220220
"csi.bpfman.io/program": "netobserv",
221221
}, ds.Spec.Template.Spec.Volumes[1].CSI.VolumeAttributes)
222222
}

internal/controller/flp/flp_common_objects.go

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -266,16 +266,17 @@ func metricsSettings(desired *flowslatest.FlowCollectorSpec, vol *volumes.Builde
266266
return metricsSettings
267267
}
268268

269-
func getStaticJSONConfig(desired *flowslatest.FlowCollectorSpec, vol *volumes.Builder, promTLS *flowslatest.CertificateReference, pipeline *PipelineBuilder, dynCMName string) (string, error) {
269+
func getJSONConfigs(desired *flowslatest.FlowCollectorSpec, vol *volumes.Builder, promTLS *flowslatest.CertificateReference, pipeline *PipelineBuilder, dynCMName string) (string, string, error) {
270270
metricsSettings := metricsSettings(desired, vol, promTLS)
271271
advancedConfig := helper.GetAdvancedProcessorConfig(desired)
272+
static, dynamic := pipeline.GetSplitStageParams()
272273
config := map[string]interface{}{
273274
"log-level": desired.Processor.LogLevel,
274275
"health": map[string]interface{}{
275276
"port": *advancedConfig.HealthPort,
276277
},
277278
"pipeline": pipeline.GetStages(),
278-
"parameters": pipeline.GetStaticStageParams(),
279+
"parameters": static,
279280
"metricsSettings": metricsSettings,
280281
"dynamicParameters": config.DynamicParameters{
281282
Namespace: desired.Namespace,
@@ -288,22 +289,19 @@ func getStaticJSONConfig(desired *flowslatest.FlowCollectorSpec, vol *volumes.Bu
288289
"port": *advancedConfig.ProfilePort,
289290
}
290291
}
291-
bs, err := json.Marshal(config)
292+
jsonStatic, err := json.Marshal(config)
292293
if err != nil {
293-
return "", err
294+
return "", "", err
294295
}
295-
return string(bs), nil
296-
}
297296

298-
func getDynamicJSONConfig(pipeline *PipelineBuilder) (string, error) {
299-
config := map[string]interface{}{
300-
"parameters": pipeline.GetDynamicStageParams(),
297+
config = map[string]interface{}{
298+
"parameters": dynamic,
301299
}
302-
bs, err := json.Marshal(config)
300+
jsonDynamic, err := json.Marshal(config)
303301
if err != nil {
304-
return "", err
302+
return "", "", err
305303
}
306-
return string(bs), nil
304+
return string(jsonStatic), string(jsonDynamic), nil
307305
}
308306

309307
func promService(desired *flowslatest.FlowCollectorSpec, svcName, namespace, appLabel string) *corev1.Service {

internal/controller/flp/flp_monolith_objects.go

Lines changed: 6 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -121,38 +121,30 @@ func (b *monolithBuilder) deployment(annotations map[string]string) *appsv1.Depl
121121
}
122122

123123
func (b *monolithBuilder) configMaps() (*corev1.ConfigMap, string, *corev1.ConfigMap, error) {
124-
grpcStage := newGRPCPipeline(b.desired, &b.volumes)
125-
pipeline := newPipelineBuilder(
124+
pipeline, err := createPipeline(
126125
b.desired,
127126
b.flowMetrics,
128127
b.fcSlices,
129128
b.detectedSubnets,
130129
b.info.Loki,
131130
b.info.ClusterInfo.GetID(),
132131
&b.volumes,
133-
&grpcStage,
132+
newGRPCPipeline(b.desired, &b.volumes),
134133
)
135-
err := pipeline.AddProcessorStages()
136134
if err != nil {
137135
return nil, "", nil, err
138136
}
139137

140-
// Get static CM
141-
data, err := getStaticJSONConfig(b.desired, &b.volumes, b.promTLS, &pipeline, monoDynConfigMap)
138+
// Get static and dynamic CM
139+
static, dynamic, err := getJSONConfigs(b.desired, &b.volumes, b.promTLS, pipeline, monoDynConfigMap)
142140
if err != nil {
143141
return nil, "", nil, err
144142
}
145-
staticCM, digest, err := configMap(monoConfigMap, b.info.Namespace, data, monoName)
143+
staticCM, digest, err := configMap(monoConfigMap, b.info.Namespace, static, monoName)
146144
if err != nil {
147145
return nil, "", nil, err
148146
}
149-
150-
// Get dynamic CM (hot reload)
151-
data, err = getDynamicJSONConfig(&pipeline)
152-
if err != nil {
153-
return nil, "", nil, err
154-
}
155-
dynamicCM, _, err := configMap(monoDynConfigMap, b.info.Namespace, data, monoName)
147+
dynamicCM, _, err := configMap(monoDynConfigMap, b.info.Namespace, dynamic, monoName)
156148
if err != nil {
157149
return nil, "", nil, err
158150
}

0 commit comments

Comments
 (0)