Repository navigation
Restore complete Kubescape result coverage #3156
Description
🤖 Generated by the Agentic Engineer
Description
The 2026-08-15 production security survey could not establish complete Kubescape coverage across posture, vulnerability, and runtime signals:
- posture controls were present for 227 of 243 expected controls (93.4% coverage), below the repository's 95% CI floor;
- 35 of 141 current long-lived containers had no complete paired vulnerability result;
- 15 of 87 active ReplicaSets had neither runtime profile, and one additional pair was partial;
- runtime alerts reach Alertmanager, but delivery to a durable downstream sink was not proven.
The active scanner-artifact failure in #3023 may explain part of the posture gap, but it does not account for or verify the vulnerability and runtime coverage gaps. A partial survey must stay explicit until every expected workload has a current, attributable result.
Expected behavior
The live security stack exposes a current and complete result set for every in-scope workload, with coverage semantics aligned to the repository gate and a verifiable alert-delivery path.
Acceptance criteria
- Define the expected-object denominator for posture, vulnerability, and runtime coverage.
- Restore current paired vulnerability results for all in-scope long-lived containers, or document a narrow evidence-backed exclusion.
- Restore both runtime profiles for all in-scope active ReplicaSets, with partial pairs reported as failures.
- Reconcile the live posture coverage calculation with the 95% repository floor without weakening either signal.
- Prove an emitted runtime alert reaches the intended durable sink.
- Add a fail-loudly regression check for missing or stale result objects.
Part of #2447.
Current denominator and remaining work — 2026-10-05
#4262 has delivered the denominator-aware, fail-loudly checker. Its fresh production read exits 1: posture expected=102/current=102/missing=0/empty=0/orphan=0; vulnerability expected=80/current=57/missing=10/stale=13/split=31; runtime expected=82/current=74/failing=2/missing=2/partial=2/stale=0/pending=12. These are workload/image/profile coverage counts, not the CI compliance percentage. Split stored versions remain untrustworthy even when their listed timestamp is current.
The denominator and regression-check criteria are delivered by #4262. Remaining acceptance is coherent current vulnerabilities (#4263/#3955), complete runtime pairs and learning measurement (#4264), plus a real emitted-alert-to-durable-sink receipt. Keep this issue open; complete posture collection alone does not satisfy it.
Metadata
Metadata
Assignees
Labels
Type
Fields
Priority
Effort
Projects
- StatusShow more project fields🧊 Icebox
Activity
coderabbitai commentedon Aug 15, 2026
🔗 Related PRs
#3037 - fix(cilium): refuse a zero-count gate release and correct the runbook order [merged]
#3080 - feat(observability): alert when a Crossplane managed resource stops reconciling [merged]
#3103 - feat(security): assert the node image verifier can enforce at all [merged]
#3109 - fix(deploy): avoid redundant GHCR node reboots [merged]
#3142 - docs(kubescape): correct the controller-rbac migration guidance [merged]
📝 Issue Planner
Check the box below or use the
@coderabbitai plancommand to generate an implementation plan and prompts that you can use with your favorite coding assistant.🧪 Issue enrichment is currently in open beta.
You can configure auto-planning by selecting labels in the issue_enrichment configuration.
To disable automatic issue enrichment, add the following to your
.coderabbit.yaml:💬 Have feedback or questions? Drop into our discord!
chore: agent-claim #3156 nonce=b956fb714189400d1c8ae005bff65ac2
devantler commentedon Aug 22, 2026
Production coverage recheck — 2026-08-22
The scanners are producing data, but complete coverage still cannot be established:
These are coverage gaps, not a clean or broken-scanner verdict. They remain within this issue's existing acceptance criteria; no duplicate tracker was created.
devantler commentedon Sep 30, 2026
Split into three sub-issues so each part can be picked up and finished on its own:
This issue closes when all three are done and the check from #4262 reports full coverage on production.