yml2dot - Turn YAML into beautiful Graph
- Visualize your YAML files as Graph
- Generate additional info from your source code (simply define a YAML block and use this tool)
How yml2dot works?
Takes in input:
- any YAML file
- any text file that has YAML between comments (like front matter)
Generates a dot script for Graphviz.
Visualize a Kubernetes Deployment YAML file
Given a sample deployment.yml
file:
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
labels:
app: nginx
spec:
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.14.2
ports:
- containerPort: 80
Run yml2dot like this:
$ yml2dot deployment.yml | dot -Tpng > deployment.png
and create this graph:
/***
Box:
Object:
- set
- get
***/
public class Box {
private Object object;
public void set(Object object) {
this.object = object;
}
public Object get() {
return object;
}
}
Use the
-from
and-to
flags to mark your YAML block.
Run yml2dot like this:
$ yml2dot -from '/***' -to '***/' Box.java | dot -Tpng > Box.java.png
and create this graph:
You can also pipe YAML strings directly into yml2dot
, allowing for dynamic generation and transformation of YAML data. This is particularly useful when combining yml2dot
with other command-line tools in a Unix-style pipeline.
For example, to visualize a YAML string without creating an intermediate file:
echo "apiVersion: v1\nkind: Pod\nmetadata:\n name: mypod" | yml2dot | dot -Tpng > mypod.png
Or, to dynamically generate a YAML configuration and immediately visualize it:
generate-yaml-config | yml2dot | dot -Tpng > config.png
This feature enhances yml2dot
's flexibility and integration into automated workflows and scripts.
If you have golang installed:
$ go install github.com/lucasepe/yml2dot@latest
This will create the executable under your $GOPATH/bin
directory.
If you don't want to compile the sourcecode yourself, Here you can find the tool already compiled for:
- MacOS
- Linux
- Windows