From a89fbac33324646319e41b48de6f3e2641d45693 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Charles-Edouard=20Br=C3=A9t=C3=A9ch=C3=A9?=
 <charled.breteche@gmail.com>
Date: Mon, 17 Oct 2022 13:01:41 +0200
Subject: [PATCH] fix: don't process non background policies in background scan
 (#5008)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Signed-off-by: Charles-Edouard Brétéché <charles.edouard@nirmata.com>

Signed-off-by: Charles-Edouard Brétéché <charles.edouard@nirmata.com>
---
 pkg/controllers/report/background/controller.go |  2 +-
 pkg/controllers/report/utils/utils.go           | 10 ++++++++++
 2 files changed, 11 insertions(+), 1 deletion(-)

diff --git a/pkg/controllers/report/background/controller.go b/pkg/controllers/report/background/controller.go
index 2d0aa5f811..e5e37f6065 100644
--- a/pkg/controllers/report/background/controller.go
+++ b/pkg/controllers/report/background/controller.go
@@ -203,7 +203,7 @@ func (c *controller) updateReport(ctx context.Context, meta metav1.Object, gvk s
 		policies = append(policies, pols...)
 	}
 	// 	load background policies
-	backgroundPolicies := utils.RemoveNonValidationPolicies(logger, policies...)
+	backgroundPolicies := utils.RemoveNonBackgroundPolicies(logger, policies...)
 	if err != nil {
 		return err
 	}
diff --git a/pkg/controllers/report/utils/utils.go b/pkg/controllers/report/utils/utils.go
index 76e1441440..dba3144fcc 100644
--- a/pkg/controllers/report/utils/utils.go
+++ b/pkg/controllers/report/utils/utils.go
@@ -30,6 +30,16 @@ func BuildKindSet(logger logr.Logger, policies ...kyvernov1.PolicyInterface) set
 	return kinds
 }
 
+func RemoveNonBackgroundPolicies(logger logr.Logger, policies ...kyvernov1.PolicyInterface) []kyvernov1.PolicyInterface {
+	var backgroundPolicies []kyvernov1.PolicyInterface
+	for _, pol := range policies {
+		if CanBackgroundProcess(logger, pol) {
+			backgroundPolicies = append(backgroundPolicies, pol)
+		}
+	}
+	return backgroundPolicies
+}
+
 func RemoveNonValidationPolicies(logger logr.Logger, policies ...kyvernov1.PolicyInterface) []kyvernov1.PolicyInterface {
 	var validationPolicies []kyvernov1.PolicyInterface
 	for _, pol := range policies {