@@ -9,6 +9,7 @@ package baseimpl
99import (
1010 "github.com/DataDog/datadog-agent/comp/core/config"
1111 workloadfilter "github.com/DataDog/datadog-agent/comp/core/workloadfilter/def"
12+ pkgconfigsetup "github.com/DataDog/datadog-agent/pkg/config/setup" //nolint:pkgconfigusage
1213)
1314
1415// filterSelection stores pre-computed filter lists to avoid recalculating them on every call
@@ -21,6 +22,8 @@ type filterSelection struct {
2122 containerSharedMetric [][]workloadfilter.ContainerFilter
2223 containerPaused [][]workloadfilter.ContainerFilter
2324 containerSBOM [][]workloadfilter.ContainerFilter
25+ containerCompliance [][]workloadfilter.ContainerFilter
26+ containerRuntimeSecurity [][]workloadfilter.ContainerFilter
2427
2528 // Pod filters
2629 podSharedMetric [][]workloadfilter.PodFilter
@@ -50,6 +53,9 @@ func (pf *filterSelection) initializeSelections(cfg config.Component) {
5053 pf .containerAutodiscoveryLogs = pf .computeContainerAutodiscoveryFilters (cfg , workloadfilter .LogsFilter )
5154 pf .containerSharedMetric = pf .computeContainerSharedMetricFilters (cfg )
5255
56+ pf .containerCompliance = pf .computeContainerComplianceFilters (cfg )
57+ pf .containerRuntimeSecurity = pf .computeContainerRuntimeSecurityFilters (pkgconfigsetup .SystemProbe ())
58+
5359 // Initialize container paused and SBOM filters
5460 pf .containerPaused = pf .computeContainerPausedFilters (cfg )
5561 pf .containerSBOM = pf .computeContainerSBOMFilters (cfg )
@@ -80,26 +86,6 @@ func (pf *filterSelection) GetContainerAutodiscoveryFilters(filterScope workload
8086 }
8187}
8288
83- // GetContainerSharedMetricFilters returns pre-computed container shared metric filters
84- func (pf * filterSelection ) GetContainerSharedMetricFilters () [][]workloadfilter.ContainerFilter {
85- return pf .containerSharedMetric
86- }
87-
88- // GetContainerPausedFilters returns pre-computed container paused filters
89- func (pf * filterSelection ) GetContainerPausedFilters () [][]workloadfilter.ContainerFilter {
90- return pf .containerPaused
91- }
92-
93- // GetContainerSBOMFilters returns pre-computed container SBOM filters
94- func (pf * filterSelection ) GetContainerSBOMFilters () [][]workloadfilter.ContainerFilter {
95- return pf .containerSBOM
96- }
97-
98- // GetPodSharedMetricFilters returns pre-computed pod shared metric filters
99- func (pf * filterSelection ) GetPodSharedMetricFilters () [][]workloadfilter.PodFilter {
100- return pf .podSharedMetric
101- }
102-
10389// GetServiceAutodiscoveryFilters returns pre-computed service autodiscovery filters
10490func (pf * filterSelection ) GetServiceAutodiscoveryFilters (filterScope workloadfilter.Scope ) [][]workloadfilter.ServiceFilter {
10591 switch filterScope {
@@ -246,3 +232,21 @@ func (pf *filterSelection) computeEndpointAutodiscoveryFilters(_ config.Componen
246232
247233 return flist
248234}
235+
236+ // computeContainerComplianceFilters computes container compliance filters
237+ func (pf * filterSelection ) computeContainerComplianceFilters (cfg config.Component ) [][]workloadfilter.ContainerFilter {
238+ flist := []workloadfilter.ContainerFilter {workloadfilter .ContainerLegacyCompliance }
239+ if cfg .GetBool ("compliance_config.exclude_pause_containers" ) {
240+ flist = append (flist , workloadfilter .ContainerPaused )
241+ }
242+ return [][]workloadfilter.ContainerFilter {flist }
243+ }
244+
245+ // computeContainerRuntimeSecurityFilters computes container runtime security filters
246+ func (pf * filterSelection ) computeContainerRuntimeSecurityFilters (cfg config.Component ) [][]workloadfilter.ContainerFilter {
247+ flist := []workloadfilter.ContainerFilter {workloadfilter .ContainerLegacyRuntimeSecurity }
248+ if cfg .GetBool ("runtime_security_config.exclude_pause_containers" ) {
249+ flist = append (flist , workloadfilter .ContainerPaused )
250+ }
251+ return [][]workloadfilter.ContainerFilter {flist }
252+ }
0 commit comments