Kubernetes Manifest Validator (Basic)
Catch common k8s manifest mistakes. Local pre-check; not a full schema validator.
This is a basic structural pre-check, not a full Kubernetes schema validator. It catches common mistakes (missing apiVersion, missing kind, missing metadata.name, obvious shape errors) but does not verify against the live cluster's CRDs or the canonical OpenAPI schema. For full validation, use kubectl apply --dry-run=server or kubeval.
What this tool does
Scans a Kubernetes YAML manifest for the structural fields almost every kind
requires: apiVersion, kind, and metadata.name.
For specific common kinds (Pod, Deployment, Service, ConfigMap, Secret, Ingress,
Job, CronJob, Namespace), it also checks for the kind-specific fields most
manifests need. Findings are flagged as errors (manifest will not apply), warnings
(likely-but-not-certain mistakes), or info (style notes). Validation is local; your
manifest is not uploaded.
How to use it
Paste a single-document YAML manifest into the input. Press Check.
The output lists each finding with a severity icon. This tool does not run a full
schema check; it is a lint pass. For full validation against your cluster, run
kubectl apply --dry-run=server -f manifest.yaml after this preflight.
Press Try an example to see a Deployment manifest in the input.
Common use cases
- Catching a missing
apiVersionbefore the apply fails. - Spotting a Service with no
selectoror noports. - Finding a Deployment whose
selector.matchLabelsdoes not match itstemplate.metadata.labels. - Verifying a ConfigMap has at least one of
dataorbinaryData. - Confirming an Ingress has at least one rule before deploying.
Common pitfalls
- Multi-document YAML. This tool checks a single document. If your
file has multiple manifests separated by
---, paste them one at a time. - Custom resources. CRDs (Argo, Cert-Manager, Istio, custom
operators) are not checked beyond the
apiVersion,kind, andmetadatafields. Use the provider's own validator for those. - Indentation. YAML is whitespace-sensitive. The tool catches obvious mistakes but does not fully parse YAML; deeply mis-indented manifests may pass this check yet fail on apply. Always run a server-side dry-run before production.
Frequently asked questions
- How does this differ from kubeval or kubectl --dry-run?
- This tool runs in your browser without needing a cluster. It catches missing required fields, obvious shape errors, and a few common pitfalls. It does not validate against the live cluster CRDs or the canonical Kubernetes OpenAPI schema. kubectl apply --dry-run=server validates against the cluster you are targeting. kubeval and kubeconform validate against published Kubernetes JSON schemas. Use this tool as a quick sanity check; use --dry-run=server before applying for real.
- What about CRDs like Argo Workflows, Cert-Manager, or Istio resources?
- CRDs use schemas defined by their authors. This tool checks the universal fields (apiVersion, kind, metadata.name) but cannot validate operator-specific fields. For CRD validation, install the CRD into a cluster and use kubectl apply --dry-run=server, or use the operator-provided validator.
- Why does my Service flag a "no selector" warning?
- A Service without a selector is valid in two cases: type ExternalName (which uses spec.externalName instead) and headless services manually backed by Endpoints objects. The tool flags this as a warning so you can confirm the configuration is intentional rather than a missing selector you forgot to add.
- Does this handle multi-document YAML separated by ---?
- It detects the separator and warns, but only checks the first document. Paste manifests one at a time for full coverage. Most Kubernetes tooling treats a multi-document file as multiple independent applies, so checking each in isolation matches how the cluster will process them.
- Can I use this on Helm chart templates?
- No, not on the raw templates. Helm templates contain {{ }} expressions that are not valid YAML. Run helm template chart/ first to render the chart to plain YAML, then paste the rendered manifests one at a time. Same applies to Kustomize: run kustomize build first.
- Why does it complain about tab characters?
- YAML does not allow tabs for indentation; the spec requires spaces. Editors that auto-convert can introduce tabs silently. The error is structural and will fail any YAML parser, not just this tool. Convert tabs to spaces (typically 2 per level for Kubernetes manifests) and re-check.
Cite this tool
For academic, journalistic, or technical references. Pick a format:
Citations use 2026 as the publication year. Access date is left as a fillable placeholder where the citation style expects one.