You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
In both the kyverno admission and reports deployments, exactly the LEADER replica burns ~1 CPU steadily while its standby idles at 1-50m (admission 1079m vs 50m; reports 929m vs 3m).
The reports leader's counters: aggregate-report-controller at 23.4 reconciles/s live (1.67M cumulative), background-scan-controller 4.7/s live (2.04M cumulative) — on a quiet cluster: 0 policyreport writes, 0 ephemeralreport events, and 0 kubescape profile events in 12s watch samples; apiserver-side webhook traffic ~0.3/s.
So the reconciles are no-op recomputation, not real work. Restarting both leaders elected new leaders that resumed the same burn ⇒ structural, not stuck state.
Consequence: the uncapped VPA sized both pairs for the pathology (1836m/1168m requests ⇒ ~6.2 cores), tipping the fleet past the static workers — the capacity half of the 2026-07-16 snapshot-slot deadlock. Mitigated by fix(vpa): cap kyverno controller CPU below the leader hot-loop level #2667 (CPU caps); this issue is the root-cause hunt.
Expected behaviour
On a quiet cluster the reports controller reconciles at near-zero; kyverno pairs fit comfortably in the static-worker budget without VPA caps doing load-bearing work.
Direction
Identify what feeds the aggregate-report/background-scan workqueues at ~25/s with no object churn (suspects: metadata-informer resync storms from a matched high-churn kind; a requeue-forever item; a kyverno bug worth an upstream issue — check kyverno releases/issues for known aggregate-controller loop fixes and consider a version bump first).
Acceptance criteria
The feed source of the no-op reconciles is named with evidence.
Fixed at root cause (config, policy scope, or upstream bump/contribution) — leader CPU at idle <100m sustained.
Evidence (measured live 2026-07-16 ~23:1x-23:4xZ)
aggregate-report-controllerat 23.4 reconciles/s live (1.67M cumulative),background-scan-controller4.7/s live (2.04M cumulative) — on a quiet cluster: 0 policyreport writes, 0 ephemeralreport events, and 0 kubescape profile events in 12s watch samples; apiserver-side webhook traffic ~0.3/s.Expected behaviour
On a quiet cluster the reports controller reconciles at near-zero; kyverno pairs fit comfortably in the static-worker budget without VPA caps doing load-bearing work.
Direction
Identify what feeds the aggregate-report/background-scan workqueues at ~25/s with no object churn (suspects: metadata-informer resync storms from a matched high-churn kind; a requeue-forever item; a kyverno bug worth an upstream issue — check kyverno releases/issues for known aggregate-controller loop fixes and consider a version bump first).
Acceptance criteria
Rough size: M (investigation-heavy).