Why it matters
kubectl apply accepts plenty of manifests that are wrong. A Service whose selector doesn't match the pod labels routes traffic nowhere. A liveness probe on a port the container doesn't listen on restarts it forever. A container with no securityContext runs as root with a writable filesystem. None of these is a syntax error, so they ship.
This tool runs kube-linter's checks on your manifests in the browser. It reads YAML the way Kubernetes does, decodes each object into the real API types, then checks selectors, probes, resources, security settings, images and disruption budgets. Each finding shows kube-linter's message, the line, and a fix. The resource graph shows what each object points at, so a dangling Service or a missing Secret stands out.
How to use it
- Paste your manifests, or choose a YAML file.
- Pick kube-linter's defaults or all 41 checks, and turn off groups you don't need.
- Fix the red findings first: security, host access and wiring.
- Copy the config to run the same checks with kube-linter in CI.
FAQ
Is this the same as kube-linter?
It runs kube-linter 0.8.3's checks with the same parameters and messages. Every finding was compared with the kube-linter binary on 791 real manifests and 1,808 variations, with no differences, including which documents it can't read.
Why does it say a document can't be read?
kube-linter decodes each object into the Kubernetes API types. A label value like 1 instead of “1”, a port written as a string or a missing kind makes the whole document fail, and kube-linter skips it silently. This tool says which line and why.
How do I accept a finding?
Add the annotation ignore-check.kube-linter.io/<check> to the object, with the reason as its value. The tool writes these for you, and honours them like kube-linter does.
Does it support Helm charts or Kustomize?
Paste the rendered output: helm template or kustomize build. Templates with {{ }} aren't valid YAML until they're rendered.
Are my manifests uploaded?
No. They're parsed and checked in your browser.
Credits and licences
Checks and messages ported from kube-linter 0.8.3 (Apache License 2.0, StackRox), field types from k8s.io/api 0.35.2 (Apache License 2.0), YAML parsed with yaml 2.9.1 (ISC License, Eemeli Aro).