Repository navigation
Description
🤖 Generated by the Agentic Engineer
Description
Fresh read-only verification after #4920 finds genuine, repeated error-level records from Kyverno's resource report controller. These are distinct from the formatter defect: a bounded sample contains valid JSON with explicit error severity, and Coroot still reports four unique errors.
Steps to Reproduce
- Run Kyverno v1.19.1 with an admission-only validating policy whose resource kinds include a wildcard and with least-privilege reports-controller RBAC.
- Observe the resource report controller building its watch set from that policy even when background processing is disabled.
- The controller repeatedly logs a forbidden list request and a failed watcher start for kinds outside its reporting grants.
Expected Behavior
Keep admission enforcement, retirement identity fences, ordinary policy reporting and real error reporting intact while eliminating the incompatible reporting watch plan. Do not grant wildcard resource reads, disable reporting, filter these errors, or narrow the retirement fence merely to clear a counter.
Evidence and Scope
The deployed v1.19.1 source at pkg/controllers/report/resource/controller.go calls BuildKindSet over RemoveNonValidationPolicies; that filter retains validating policies regardless of background eligibility. BuildKindSet includes wildcard matches, and startWatcher performs an initial full-object list. This establishes the observed policy-to-watch-to-denial path, not a safe fix or proof of report freshness. The existing narrow reporting grants from #3760 address a different, finite kind set.
Acceptance Criteria
- Reproduce the admission-only wildcard case with native policy/controller controls before changing behavior.
- Select and document a repair that retains the admission fence and report coverage without widening secret or unrelated-resource access.
- Preserve genuine failures and test incomplete/denied observations as failures, not successful empty coverage.
- Obtain separate upstream authorization if the necessary repair belongs outside the portfolio.
- Merge the reviewed fix, verify deployed source and reporting freshness, and collect separated producer and Coroot readbacks.
Related to #4919 and #4819. Captured during active deployment acceptance; no permission, policy, reporting or suppression change was made. Priority High reflects sustained controller errors and uncertain reporting coverage; Effort High includes the compatibility decision and native/live evidence. Service class Standard; capture only, not an additional WIP start.
Metadata
Metadata
Assignees
Labels
Type
Fields
Priority
Effort
Projects
- StatusShow more project fields📥 Backlog
Activity
devantler commentedon Oct 15, 2026
The issue is linked to roadmap #2043. Adding it to Project 5 was refused before any write because the shared GitHub GraphQL quota is exhausted until 17:16 UTC. Board placement remains unverified; no implementation or permission change has started.
chore: agent-claim #4929 nonce=a1ee8c07a285d5d6c4739b814af7e7ab
chore: agent-claim #4929 nonce=646b0377f3de2aec336d013756406bd1
chore: agent-claim #4929 nonce=3d40aa9c39d571773a016e7975d3501a
chore: agent-claim #4929 nonce=a9839b7d6b3d59ae945fa929788a44c2
chore: agent-claim #4929 nonce=d27178a19690145e4b0ab0afa3f3340f
chore: agent-claim #4929 nonce=11cfb8cec7bbbd42796b80538d028ecb
devantler commentedon Nov 2, 2026
Still happening on Kyverno v1.19.2, and there is a second error family. Read from the current reports controller on 2 November, about 16:15Z, over the last 6 hours. This is a read only: nothing was changed.
failed to start watcherrecords, each beside a "missing RBAC" record. By group: 18actions.github.com/v1alpha1, 9kro.run/v1alpha1, 9 corev1. So the upgrade did not fix it.failed to resolve kindrecords for the UniFi Crossplane groups, with the version shown as*. Three deployed ValidatingPolicies select those groups withapiVersions: ["*"]:restrict-unifi-apply-management-policies,restrict-unifi-observe-onlyandrestrict-unifi-prune-management-policies. The link from those policies to these records is inferred from the matching groups and version, and is not yet proven. Whether those policies still get report coverage is also unread.This matters beyond the error count. #5464's removal of the old listener guard names this issue as its reporting prerequisite, so the guard stays in place until this one is settled.