DevOps

Kubernetes YAML Validator

Check a Kubernetes manifest for YAML syntax errors, missing required fields, and common misconfigurations — right in your browser, before you apply it.

LogShare Kubernetes YAML Validator Runs in your browser · nothing is uploaded

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

  1. Paste your manifest YAML (single document or --- separated multi-document).
  2. Click Validate.
  3. Results are grouped into ERROR (will likely be rejected by the API server), WARNING (works but risky), and INFO (best-practice suggestions).
  4. 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.