@@ -15,6 +15,7 @@ import (
1515 "strconv"
1616 "strings"
1717
18+ semver3 "github.com/Masterminds/semver/v3"
1819 "github.com/gardener/gardener/extensions/pkg/controller"
1920 "github.com/gardener/gardener/pkg/extensions"
2021 "github.com/go-logr/logr"
@@ -234,8 +235,11 @@ func (c *ConfigBuilder) BuildFalcoValues(ctx context.Context, log logr.Logger, c
234235 "networking.gardener.cloud/to-falcosidekick" : "allowed" ,
235236 },
236237 "priorityClassName" : * c .config .Falco .PriorityClassName ,
237- "driver" : map [string ]string {
238- "kind" : "modern-bpf" ,
238+ "driver" : map [string ]any {
239+ "kind" : "modern_ebpf" ,
240+ "loader" : map [string ]bool {
241+ "enabled" : false ,
242+ },
239243 },
240244 "image" : map [string ]string {
241245 "image" : falcoImage ,
@@ -250,6 +254,12 @@ func (c *ConfigBuilder) BuildFalcoValues(ctx context.Context, log logr.Logger, c
250254 "docker" : map [string ]bool {
251255 "enabled" : false ,
252256 },
257+ "containerd" : map [string ]bool {
258+ "enabled" : true ,
259+ },
260+ "containerEngine" : map [string ]bool {
261+ "enabled" : false ,
262+ },
253263 },
254264 "extra" : map [string ]interface {}{
255265 "env" : []map [string ]string {
@@ -300,6 +310,9 @@ func (c *ConfigBuilder) BuildFalcoValues(ctx context.Context, log logr.Logger, c
300310 if err := c .generateHeartbeatRule (falcoChartValues , falcoServiceConfig , falcoVersion ); err != nil {
301311 return nil , err
302312 }
313+ if err := c .enableContainerPlugin (falcoChartValues , falcoVersion ); err != nil {
314+ return nil , err
315+ }
303316 return falcoChartValues , nil
304317}
305318
@@ -371,6 +384,19 @@ func (c *ConfigBuilder) generateHeartbeatRule(falcoChartValues map[string]interf
371384 return nil
372385}
373386
387+ func (c * ConfigBuilder ) enableContainerPlugin (falcoChartValues map [string ]interface {}, falcoVersion * string ) error {
388+ constraint , _ := semver3 .NewConstraint (">= 0.41.2" )
389+ v , err := semver3 .NewVersion (* falcoVersion )
390+ if err != nil {
391+ return fmt .Errorf ("invalid falco version %s: %w" , * falcoVersion , err )
392+ }
393+ if constraint .Check (v ) {
394+ falcoChartValues ["collectors" ].(map [string ]any )["containerEngine" ].(map [string ]bool )["enabled" ] = true
395+ falcoChartValues ["collectors" ].(map [string ]any )["containerd" ].(map [string ]bool )["enabled" ] = false
396+ }
397+ return nil
398+ }
399+
374400func (c * ConfigBuilder ) generateStandardRules (falcoChartValues map [string ]interface {}, falcoServiceConfig * apisservice.FalcoServiceConfig , falcoVersion * string ) error {
375401 if falcoServiceConfig .Rules .StandardRules != nil {
376402 for _ , rule := range * falcoServiceConfig .Rules .StandardRules {
0 commit comments