/kustomize-graph

A tool for visualizing a kustomize dependency graph

Primary LanguageGoMIT LicenseMIT

kustomize-graph

Go Report Card GoDoc GitHub release

kustomize-graph is a tool that will generate a dependency graph of your kustomize structure.

Install

Builds are available on the releases page.

Usage

kustomize-graph outputs a graph in DOT. To visualize a DOT graph, graphviz is recommended.

After installing, a graph can be generated by piping the output of kustomize-graph into DOT.

kustomize-graph | dot -Tsvg > graph.svg

NOTE: You should run kustomize-graph in the same working directory that you would run kustomize in.

Example

Multibases

Using the multibases example from the kustomize repository

multibases
├── base
│   ├── kustomization.yaml
│   └── pod.yaml
├── dev
│   └── kustomization.yaml
├── kustomization.yaml
├── production
│   └── kustomization.yaml
└── staging
    └── kustomization.yaml
# multibases/base/kustomization.yaml
resources:
- pod.yaml

multibases

NOTE: While the folder structure that produced this graph contains a pod.yaml in the base directory, the generated graph will only show the folder.

If only the folder is shown, it can be inferred that all .yaml files in the directory are defined in the kustomization.yaml file.

Missing Resources

Taking the same example as above, if a file is NOT defined in kustomization.yaml, it is annotated in the node.

multibases
├── base
│   ├── kustomization.yaml
│   ├── file-not-included.yaml
│   └── pod.yaml
├── dev
│   └── kustomization.yaml
├── kustomization.yaml
├── production
│   └── kustomization.yaml
└── staging
    └── kustomization.yaml
# multibases/base/kustomization.yaml
resources:
- pod.yaml

missing