Choose a version and validate
Select the schema snapshot that matches your intended Kubernetes version, paste YAML or JSON, then choose Validate. Documents separated by three dashes and resources inside a List are checked individually. Missing schemas are reported separately from schema errors.
Bundled resource coverage
| Kind | API version |
|---|---|
| Pod | v1 |
| Service | v1 |
| ConfigMap | v1 |
| Secret | v1 |
| Namespace | v1 |
| ServiceAccount | v1 |
| PersistentVolumeClaim | v1 |
| Deployment | apps/v1 |
| StatefulSet | apps/v1 |
| DaemonSet | apps/v1 |
| ReplicaSet | apps/v1 |
| Job | batch/v1 |
| CronJob | batch/v1 |
| Ingress | networking.k8s.io/v1 |
| NetworkPolicy | networking.k8s.io/v1 |
| Role | rbac.authorization.k8s.io/v1 |
| RoleBinding | rbac.authorization.k8s.io/v1 |
| HorizontalPodAutoscaler | autoscaling/v2 |
Bring local CRD schemas
Paste complete version-one CRD documents in the optional panel or include them in the manifest stream. The validator uses each served version’s OpenAPI structural schema. Primitive nullable values and integer-or-string extensions are normalized for these checks. External schema references are rejected; no schema URL or cluster endpoint is fetched.
CRD schemas supply structural validation only. Kubernetes extension semantics such as CEL expressions, list merge rules, defaults and admission decisions require the server. A local pass does not prove that the cluster will accept the resource.
Limits are 200,000 characters per input, 100 YAML documents and 200 resources including List items. For Compose services use Docker Compose Validator; for CI files use GitHub Actions Validator. Schema licenses.
Frequently asked questions
Which Kubernetes resources can be checked?
Each bundled version supports Pod, Service, ConfigMap, Secret, Namespace, ServiceAccount, PersistentVolumeClaim, Deployment, StatefulSet, DaemonSet, ReplicaSet, Job, CronJob, Ingress, NetworkPolicy, Role, RoleBinding and HorizontalPodAutoscaler in their bundled API versions. Other kinds are explicitly marked unchecked.
Can I validate custom resources?
Yes. Supply apiextensions.k8s.io/v1 CustomResourceDefinition documents alongside the resources or in the optional CRD panel. A served version with an openAPIV3Schema provides local structural checks for that group, version and kind. This is not a complete validation of the CRD definition itself.
Is this equivalent to kubectl dry-run against my cluster?
No. The tool checks bundled resource schemas, required resource naming and selected workload selector consistency. It does not contact a cluster or evaluate admission webhooks, CEL rules, authorization, defaulting, pruning, server-side field ownership or cluster-specific restrictions.
What happens to an unsupported kind or API version?
It is reported as unchecked, and the overall result is marked incomplete. The tool does not silently accept an unknown custom resource. Add a matching local CRD schema or check the manifest against the actual cluster.
Sources
Spotted a mistake? Email hello@devtoolsmith.com and we’ll fix it.