From a77c10a2c65dde56e45446928426f5cfbafc18e2 Mon Sep 17 00:00:00 2001 From: Pradeep Lakshmi Narasimha Date: Tue, 30 Sep 2025 22:37:43 +0530 Subject: [PATCH] fix: Prevent permission errors for ignored workload types #996 Signed-off-by: Pradeep Lakshmi Narasimha --- internal/pkg/handler/upgrade.go | 30 +++++++++++++++++++++++------- 1 file changed, 23 insertions(+), 7 deletions(-) diff --git a/internal/pkg/handler/upgrade.go b/internal/pkg/handler/upgrade.go index 57af252d..9f661dab 100644 --- a/internal/pkg/handler/upgrade.go +++ b/internal/pkg/handler/upgrade.go @@ -172,18 +172,34 @@ func sendWebhook(url string) (string, []error) { func doRollingUpgrade(config common.Config, collectors metrics.Collectors, recorder record.EventRecorder, invoke invokeStrategy) error { clients := kube.GetClients() - err := rollingUpgrade(clients, config, GetDeploymentRollingUpgradeFuncs(), collectors, recorder, invoke) + // Get ignored workload types to avoid listing resources without RBAC permissions + ignoredWorkloadTypes, err := util.GetIgnoredWorkloadTypesList() + if err != nil { + logrus.Errorf("Failed to parse ignored workload types: %v", err) + ignoredWorkloadTypes = util.List{} // Continue with empty list if parsing fails + } + + err = rollingUpgrade(clients, config, GetDeploymentRollingUpgradeFuncs(), collectors, recorder, invoke) if err != nil { return err } - err = rollingUpgrade(clients, config, GetCronJobCreateJobFuncs(), collectors, recorder, invoke) - if err != nil { - return err + + // Only process CronJobs if they are not ignored + if !ignoredWorkloadTypes.Contains("cronjobs") { + err = rollingUpgrade(clients, config, GetCronJobCreateJobFuncs(), collectors, recorder, invoke) + if err != nil { + return err + } } - err = rollingUpgrade(clients, config, GetJobCreateJobFuncs(), collectors, recorder, invoke) - if err != nil { - return err + + // Only process Jobs if they are not ignored + if !ignoredWorkloadTypes.Contains("jobs") { + err = rollingUpgrade(clients, config, GetJobCreateJobFuncs(), collectors, recorder, invoke) + if err != nil { + return err + } } + err = rollingUpgrade(clients, config, GetDaemonSetRollingUpgradeFuncs(), collectors, recorder, invoke) if err != nil { return err