Loading tool…
About the Kubernetes YAML Validator
Paste a Pod, Deployment, Service, Ingress, or other Kubernetes manifest to catch common mistakes early: missing apiVersion/kind/metadata.name, containers using the latest tag, missing resource requests/limits, and missing readiness/liveness probes. This is a static, client-side check — it is not a substitute for kubectl apply --dry-run=server against a real API server, which also validates against your cluster’s installed CRDs and admission webhooks.
How to use the Kubernetes YAML Validator
- Paste your manifest YAML (single document or --- separated multi-document).
- Click Validate.
- Results are grouped into ERROR (will likely be rejected by the API server), WARNING (works but risky), and INFO (best-practice suggestions).
- Fix and re-run as needed — nothing is sent to a server.
Step-by-step walkthrough with examples and the errors people hit: How to Validate Kubernetes YAML Before Apply.
Example
Common warning
containers:
- name: app
image: myapp:latest
→
WARNING: container "app" uses the "latest" tag — deployments become non-reproducible
Common errors and how to fix them
bad indentation of a mapping entry
YAML nesting is defined by spaces. A line indented differently from its siblings, or a tab character, breaks the document.
selector does not match template labels
spec.selector.matchLabels must be a subset of spec.template.metadata.labels, otherwise the Deployment cannot own its pods. The validator reports this as an error, and so does the API server.
More problems and fixes in the tutorial
FAQ
Does this replace kubectl apply --dry-run?
No. A server-side dry run validates against your actual cluster version, CRDs, and admission controllers. This tool only catches structural and best-practice issues that are knowable from the YAML alone.
Which resource kinds are supported?
Pod, Deployment, StatefulSet, DaemonSet, Job, CronJob, Service, Ingress, ConfigMap, Secret, ServiceAccount, Role, RoleBinding, ClusterRole, ClusterRoleBinding, PersistentVolume, PersistentVolumeClaim, NetworkPolicy, and HorizontalPodAutoscaler.
Is my manifest uploaded anywhere?
No — parsing and checks run entirely in your browser. Manifests often contain internal hostnames or config details, so nothing leaves your device.