Skip to main content
QUIETLYTIC
Developer

Kubernetes Manifest Validator

Check one or more Kubernetes manifests for the fields each kind cannot function without.

Local · nothing leaves this browser Waiting for a manifest
Esc Clear
Findings

Paste one or more manifests on the left.

How it works

Checks the fields a Kubernetes manifest cannot function without: the universal apiVersion, kind and metadata.name, plus a handful of per-kind requirements — a Deployment needs spec.selector and spec.template, a Service needs a selector or an ExternalName type. Accepts multiple ----separated documents in one paste, since that is how manifests are usually written in practice.

What this does not check

This is not the full Kubernetes OpenAPI schema, which runs to thousands of fields across dozens of API versions, and it never talks to a live cluster — it cannot confirm a referenced ConfigMap or Secret actually exists, or that your RBAC permits the change. kubectl apply --dry-run=server is the tool for that; this is a structural check you can run before you have a cluster to talk to at all.

Example

A Deployment with an empty containers: [] list is flagged as an error — it would run nothing. A Service with a selector but no ports is flagged as a warning, not an error, since that is unusual but not necessarily broken.

Frequently asked questions

Why does it accept multiple documents in one file?

Because that is how Kubernetes manifests are usually written in practice — a Deployment, its Service, and its ConfigMap as one `---`-separated file rather than three. Reading only the first document would silently skip the rest, which is a worse failure mode than the tool being asked to parse something slightly unusual.

Why is a missing spec.selector only checked for some kinds?

Because it only means something for the kinds that use it — a Deployment or Service without one genuinely cannot function, but the requirement does not exist for a ConfigMap or Secret, which have no selector concept at all. Checking every kind against the same fixed field list would produce false positives on kinds where the field was never relevant.

Related tools

From the intelligence desk