DevToolsmith

Kubernetes Manifest Validator

Validate common Kubernetes resources against bundled 1.35 and 1.36 schema snapshots. Check multi-document manifests and local CRD schemas without uploading deployment files or contacting a cluster.

Runs 100% in your browser — nothing is uploaded

Kubernetes manifest YAML
Tip: drop a file here440 chars · 440 bytes · 31 lines
Local CRD schemas (optional)
CustomResourceDefinition YAML
Tip: drop a file here0 chars · 0 bytes · 0 lines

Strict schemas for 18 common resource kinds per version. Unknown kinds are explicitly marked unchecked. Local CRDs provide structural schema checks; CEL, admission, defaults, cluster state and server-side dry runs are outside this tool.

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

KindAPI version
Podv1
Servicev1
ConfigMapv1
Secretv1
Namespacev1
ServiceAccountv1
PersistentVolumeClaimv1
Deploymentapps/v1
StatefulSetapps/v1
DaemonSetapps/v1
ReplicaSetapps/v1
Jobbatch/v1
CronJobbatch/v1
Ingressnetworking.k8s.io/v1
NetworkPolicynetworking.k8s.io/v1
Rolerbac.authorization.k8s.io/v1
RoleBindingrbac.authorization.k8s.io/v1
HorizontalPodAutoscalerautoscaling/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.