What this computes
A YAML file with a dozen ----separated resources tells you what each object is, but not how they relate — that's implicit, spread across label selectors and name references you'd otherwise trace by eye. Paste the bundle and each resource gets a summary card, plus the relationships this tool can actually compute statically:
- Which Pods a Service selects. Kubernetes Service selectors are an equality-based subset match — every key/value pair in
spec.selectorhas to be present in a workload's pod-template labels, extra labels on the workload are fine. This tool runs that exact match against everyPod/Deployment/StatefulSet/DaemonSet/ReplicaSet/Job/CronJobin the bundle and shows the result — including flagging a selector that matches nothing at all, which means the Service has no endpoints. - Whether a named targetPort actually resolves. A Service's
targetPortcan reference a container port by name instead of number — if it does, this checks that name against the actual container ports on whatever the Service selects, and flags it if nothing matches. - Which ConfigMap/Secret a workload references, via
envFrom,env[].valueFrom, and volume mounts — cross-referenced against what's actually in the pasted bundle. - Which Service an Ingress rule routes to, matched against the bundle by name.
What this isn't
This is static analysis of the YAML you pasted — it doesn't know your cluster's actual state, so a reference to a ConfigMap or Service that genuinely exists in the cluster but wasn't included in this paste gets flagged too (as a note, not a hard error, since that's a completely normal and common situation). It also doesn't resolve ownerReferences or simulate what a live ReplicaSet/Pod would actually look like — for structural correctness against the Kubernetes API itself, see Kubernetes YAML Validator.
FAQ
Where would I get a bundle like this?
kubectl get all -o yaml or kubectl get all,configmap,secret,ingress -o yaml for a live namespace, the rendered output of kustomize build or helm template, or just several manifest files concatenated together with --- between them.
Why are Secret values hidden?
Only the key names are shown, never the (base64-encoded) values — matching kubectl describe secret's own default behavior. Nothing you paste is uploaded regardless, but not surfacing secret values prominently is a good habit either way.