Skip to content

TROUBLESHOOTING

Troubleshooting

Real issues, with the actual fix. If your symptom isn't here, open an issue.

A manifest that "looks fine" gets flagged critical/high

Check docs/RULES.md for exactly what triggers each severity — KubeFlight reports conservatively rather than guessing, so a flagged finding usually traces to a specific, real rule (e.g. a Restricted Pod Security violation, a missing RBAC contract, or a NetworkPolicy gap), not a false positive. If a finding genuinely doesn't apply to your situation, that's feedback for the rule, not a sign the tool is broken.

Placement/scheduling simulation results don't match my real cluster

Expected if you're using an offline JSON cluster snapshot rather than a live read-only connection — the snapshot is only as current as when it was captured. For up-to-date placement simulation, use the opt-in live-cluster mode (docs/DEPLOYMENT.md), which reads real node/pod state but never requires Secret access.

I want full certainty, not a simulation

KubeFlight says this about itself, not just as a limitation but as a design choice: it's "a preflight simulator, not a byte-for-byte implementation of kube-scheduler plugins, admission webhooks, CNI dataplanes, or production traffic." For the strongest pre-apply signal beyond simulation, use the built-in kubectl apply --dry-run=server integration, which requires a real cluster and gives the API server's own authoritative validation.

Cost estimate doesn't match my cloud bill

The cost model is explicitly provider-neutral (see the README's "Cost model" section) — it estimates relative change/delta, not your exact invoice from a specific cloud provider's pricing API. Use it to catch large, unexpected cost growth between baseline and proposed manifests, not as a billing reconciliation tool.

RBAC contract check fails unexpectedly

RBAC evaluation works from annotations you provide — see the README's "RBAC contracts" section for the exact contract format. A failure usually means the contract doesn't match what the manifest actually grants/ requires, which is the check doing its job.

Nothing here matches

Check docs/ARCHITECTURE.md and docs/THREAT_MODEL.md for the full design picture, then open an issue with your manifest (redact secrets) and the generated report.