How to use
- deployment.yaml
Paste YAML (several documents)
- Service matcheswith line numbers
Resource matches and findings
- deployment.yaml (formatted)key order kept
Format and save
Paste YAML, or drop a file (“Choose file” works too). “Try a sample” shows how it works.
Check the resource list for apiVersion, kind, name, namespace and labels. Deployment containers show image, ports, env names and resources.
Open “Issues” for a list ordered by severity. Removed APIs and Deployment selector mismatches are high; the rest are medium or low.
Use “Format” to save the YAML with aligned indentation. It is not formatted when there is a syntax error.
What it does
Findings from official removed APIs
Only the apiVersion and kind pairs listed in the Kubernetes Deprecated API Migration Guide are checked, with the release in which each was removed (1.16, 1.22, 1.25, 1.26, 1.29).
Service to Deployment matching
Shows which Deployments a Service selector reaches, and flags selectors that match nothing and targetPorts that no container port matches.
Pod Security checks
Checks privileged, hostNetwork and hostPath (baseline), and runAsNonRoot and allowPrivilegeEscalation (restricted), following the Pod Security Standards.
Env values are kept out of the table and issues
Flags values in env that look like secrets (AWS-style keys, PEM keys) or names such as PASSWORD and TOKEN set directly. The table and issues show names only. The Format tab prints the YAML as it is, values included.
Formatting with line-numbered issues
Keeps the --- document separators and key order while aligning indentation, so the output is easy to diff.
Use cases
- Check for removed apiVersions such as extensions/v1beta1 before you apply to a cluster
- See which Deployment a Service selector reaches without tracing labels by hand
- Review Pod securityContext settings such as privileged and runAsNonRoot before publishing
- Look for passwords typed directly into env values in YAML generated by Helm or other tools
Capability matrix
| Feature | Support | Notes |
|---|---|---|
| Reading multiple documents and listing resources | Supported | — |
| Removed API detection (only the pairs in the official migration guide) | Partial | Pairs not in the list, and newly removed APIs, are not detected |
| Service selector and targetPort matching to Deployments | Supported | — |
| Pod Security checks (privileged, hostNetwork, hostPath, runAsNonRoot and more) | Partial | Only part of the baseline and restricted profiles |
| Latest tags, requests/limits and probes | Supported | Best-practice checks; Kubernetes does not require them |
| Full schema validation (every field name and type) | Not supported | Full schema validation is not performed |
| Applying to a cluster, comparing with live resources, running kubectl | Not supported | No network requests; kubectl is not run |
| Expanding Helm or Kustomize templates | Not supported | Paste the rendered YAML instead |
Limits & notes
- Input is limited to 300,000 characters and 50 documents. Anything beyond is not read, and you are told.
- Full schema validation is not performed. A misspelled field or wrong type may not be flagged here, but the cluster may still reject it.
- Pod Security checks cover only part of the baseline and restricted profiles. The namespace-level Pod Security setting is not visible here.
- Findings follow the official documentation. Removal dates and recommendations depend on the Kubernetes version.
Privacy & safety
Pasted YAML is processed only inside your browser. Nothing is sent to or stored on a server, and nothing is saved in the browser. Usage analytics never include content or file names.
FAQ
When was extensions/v1beta1 Deployment removed?
A Service does not reach my pods. What should I check?
What happens without resources or probes?
If there are no findings, will it apply?
How should I supply secret values?
Related tools
Docker Compose Studio
Convert docker run commands to compose.yaml, or compose.yaml back to docker run. A compose file is checked for syntax, the Compose Specification and common mistakes, and security points worth confirming are listed. Nothing is started or pulled, and your input never leaves your device.
Dockerfile Studio
Paste a Dockerfile to check its syntax, stages and common mistakes. Secret-looking values and points to confirm, such as curl | sh, are listed with line numbers. You can also format it or generate starter files for Node.js, Python, Go, a static site or Java. Nothing is built, and your input never leaves your device.
YAML / TOML Studio — Validate, Format & Convert
Paste YAML, TOML or JSON to validate, format or convert it. Errors show the exact line and column, and type traps such as “no becomes false” and anything lost in conversion are flagged up front. Your data never leaves your device.
Lockfile Diff & Dependency Tree
Compare two lockfiles to see which packages were added, removed or upgraded. You can also see why a package is installed and where several versions of one package come from. Nothing leaves your browser.
.env Studio
Paste or drop a .env file to see its keys and values in a table, with duplicates, empty values and syntax problems flagged by line. Values are hidden by default. You can compare a .env with a .env.example, or export an example file, JSON or a Kubernetes Secret. It checks common dotenv syntax, not tool-specific rules such as docker compose variable expansion.
nginx Config Studio
Build a reverse proxy, SPA, PHP-FPM or HTTP-to-HTTPS redirect config from a form, or paste your nginx.conf to list syntax errors and easy-to-miss points. Everything runs in your browser and nginx is never executed.
Last updated: