[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-72748":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":18,"stars30d":19,"stars90d":16,"forks30d":16,"starsTrendScore":20,"compositeScore":21,"rankGlobal":10,"rankLanguage":10,"license":22,"archived":23,"fork":23,"defaultBranch":24,"hasWiki":25,"hasPages":23,"topics":26,"createdAt":10,"pushedAt":10,"updatedAt":37,"readmeContent":38,"aiSummary":39,"trendingCount":16,"starSnapshotCount":16,"syncStatus":40,"lastSyncTime":41,"discoverSource":42},72748,"KubeDiagrams","philippemerle\u002FKubeDiagrams","philippemerle","Generate Kubernetes architecture diagrams from Kubernetes manifest files, kustomization files, Helm charts, helmfiles, and actual cluster state","https:\u002F\u002Fkubediagrams.lille.inria.fr\u002F",null,"JavaScript",2566,159,16,10,0,15,56,108,45,108.61,"Apache License 2.0",false,"main",true,[27,28,29,30,31,32,33,34,35,36],"architecture","diagrams","graphviz","helm","helm-chart","helmfile","k8s","k8s-cluster","kubernetes","python","2026-06-12 04:01:07","# KubeDiagrams\n\n[![CNCF Landscape](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FCNCF%20Landscape-5699C6)](https:\u002F\u002Flandscape.cncf.io\u002F?item=app-definition-and-development--application-definition-image-build--kubediagrams)\n[![license](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Flicense\u002Fphilippemerle\u002FKubeDiagrams)](https:\u002F\u002Fgithub.com\u002Fphilippemerle\u002FKubeDiagrams\u002Fblob\u002Fmain\u002FLICENSE)\n![python version](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fpython-%3E%3D%203.9-blue?logo=python)\n[![Socket Badge](https:\u002F\u002Fsocket.dev\u002Fapi\u002Fbadge\u002Fpypi\u002Fpackage\u002FKubeDiagrams\u002F0.6.0?artifact_id=tar-gz)](https:\u002F\u002Fsocket.dev\u002Fpypi\u002Fpackage\u002FKubeDiagrams\u002Foverview\u002F0.6.0\u002Ftar-gz)\n[![pypi version](https:\u002F\u002Fbadge.fury.io\u002Fpy\u002FKubeDiagrams.svg)](https:\u002F\u002Fbadge.fury.io\u002Fpy\u002FKubeDiagrams)\n[![PyPI Downloads](https:\u002F\u002Fstatic.pepy.tech\u002Fbadge\u002Fkubediagrams)](https:\u002F\u002Fpepy.tech\u002Fprojects\u002Fkubediagrams)\n[![Docker Stars](https:\u002F\u002Fimg.shields.io\u002Fdocker\u002Fstars\u002Fphilippemerle\u002Fkubediagrams)](https:\u002F\u002Fhub.docker.com\u002Fr\u002Fphilippemerle\u002Fkubediagrams)\n[![Docker Image Version](https:\u002F\u002Fimg.shields.io\u002Fdocker\u002Fv\u002Fphilippemerle\u002Fkubediagrams)](https:\u002F\u002Fhub.docker.com\u002Fr\u002Fphilippemerle\u002Fkubediagrams)\n[![Docker Pulls](https:\u002F\u002Fimg.shields.io\u002Fdocker\u002Fpulls\u002Fphilippemerle\u002Fkubediagrams)](https:\u002F\u002Fhub.docker.com\u002Fr\u002Fphilippemerle\u002Fkubediagrams)\n![contributors](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fcontributors\u002Fphilippemerle\u002FKubeDiagrams)\n\n\u003Ca href=\"https:\u002F\u002Ftrendshift.io\u002Frepositories\u002F14300\" target=\"_blank\">\u003Cimg src=\"https:\u002F\u002Ftrendshift.io\u002Fapi\u002Fbadge\u002Frepositories\u002F14300\" alt=\"philippemerle%2FKubeDiagrams | Trendshift\" style=\"width: 250px; height: 55px;\" width=\"250\" height=\"55\"\u002F>\u003C\u002Fa>\n\n![KubeDiagrams Logo](https:\u002F\u002Fraw.githubusercontent.com\u002Fphilippemerle\u002FKubeDiagrams\u002Frefs\u002Fheads\u002Fmain\u002Fimages\u002FKubeDiagrams.png)\n\nGenerate Kubernetes architecture diagrams from Kubernetes manifest files, kustomization files, Helm charts, helmfile descriptors, and actual cluster state.\n\nThere are several tools to generate Kubernetes architecture diagrams, see **[here](https:\u002F\u002Fgithub.com\u002Fphilippemerle\u002FAwesome-Kubernetes-Architecture-Diagrams)** for a detailed list.\nCompared to these existing tools, the main originalities of **KubeDiagrams** are the support of:\n\n* **[most of all Kubernetes built-in resources](https:\u002F\u002Fgithub.com\u002Fphilippemerle\u002FKubeDiagrams#kubernetes-built-in-resources)**,\n* **[any Kubernetes custom resources](https:\u002F\u002Fgithub.com\u002Fphilippemerle\u002FKubeDiagrams#kubernetes-custom-resources)**,\n* **[customizable resource clustering](https:\u002F\u002Fgithub.com\u002Fphilippemerle\u002FKubeDiagrams#kubernetes-resources-clustering)**,\n* **[any Kubernetes resource relationships](https:\u002F\u002Fgithub.com\u002Fphilippemerle\u002FKubeDiagrams#kubernetes-resource-relationships)**,\n* **[declarative custom diagrams](https:\u002F\u002Fgithub.com\u002Fphilippemerle\u002FKubeDiagrams#declarative-custom-diagrams)**,\n* **[an interactive diagram viewer](https:\u002F\u002Fgithub.com\u002Fphilippemerle\u002FKubeDiagrams#kubediagrams-interactive-viewer)**,\n* **[a modern web application](https:\u002F\u002Fgithub.com\u002Fphilippemerle\u002FKubeDiagrams#kubediagrams-webapp)**,\n* **main input formats** such as Kubernetes manifest files, customization files, Helm charts, helmfile descriptors, and actual cluster state,\n* **main output formats** such as DOT, draw.io, GIF, JPEG, PDF, PNG, SVG, and TIFF,\n* **[editable draw.io export](https:\u002F\u002Fgithub.com\u002Fphilippemerle\u002FKubeDiagrams?tab=readme-ov-file#editable-drawio-export)**,\n* **[a very large set of examples](https:\u002F\u002Fgithub.com\u002Fphilippemerle\u002FKubeDiagrams#examples)**.\n\n**KubeDiagrams** is available as a [Python package in PyPI](https:\u002F\u002Fpypi.org\u002Fproject\u002FKubeDiagrams), a [container image in DockerHub](https:\u002F\u002Fhub.docker.com\u002Fr\u002Fphilippemerle\u002Fkubediagrams), a `kubectl` plugin, a Nix flake, and a GitHub Action, see [here](https:\u002F\u002Fgithub.com\u002Fphilippemerle\u002FKubeDiagrams#getting-started) for more details.\n\nAn **Online KubeDiagrams Service** is freely available at **[https:\u002F\u002Fkubediagrams.lille.inria.fr\u002F](https:\u002F\u002Fkubediagrams.lille.inria.fr\u002F)**.\n\nRead **[Real-World Use Cases](https:\u002F\u002Fgithub.com\u002Fphilippemerle\u002FKubeDiagrams#real-world-use-cases)** and **[What do they say about it](https:\u002F\u002Fgithub.com\u002Fphilippemerle\u002FKubeDiagrams#what-do-they-say-about-it)** to discover how **KubeDiagrams** is really used and appreciated.\n\nTry it on your own Kubernetes manifests, Helm charts, helmfiles, and actual cluster state!\n\n## Examples\n\nArchitecture diagram for **[official Kubernetes WordPress tutorial](https:\u002F\u002Fkubernetes.io\u002Fdocs\u002Ftutorials\u002Fstateful-application\u002Fmysql-wordpress-persistent-volume\u002F)** manifests:\n![WordPress Manifests](https:\u002F\u002Fraw.githubusercontent.com\u002Fphilippemerle\u002FKubeDiagrams\u002Frefs\u002Fheads\u002Fmain\u002Fexamples\u002Fwordpress\u002Fwordpress.png)\n\nArchitecture diagram for **[official Kubernetes ZooKeeper tutorial](https:\u002F\u002Fkubernetes.io\u002Fdocs\u002Ftutorials\u002Fstateful-application\u002Fzookeeper\u002F)** manifests:\n![ZooKeeper Manifest](https:\u002F\u002Fraw.githubusercontent.com\u002Fphilippemerle\u002FKubeDiagrams\u002Frefs\u002Fheads\u002Fmain\u002Fexamples\u002Fzookeeper\u002Fzookeeper.png)\n\nArchitecture diagram of a deployed **[Cassandra](https:\u002F\u002Fkubernetes.io\u002Fdocs\u002Ftutorials\u002Fstateful-application\u002Fcassandra\u002F)** instance:\n![Deployed Cassandra Instance](https:\u002F\u002Fraw.githubusercontent.com\u002Fphilippemerle\u002FKubeDiagrams\u002Frefs\u002Fheads\u002Fmain\u002Fexamples\u002Fcassandra\u002Fdefault.png)\n\nArchitecture diagram for **[Train Ticket：A Benchmark Microservice System](https:\u002F\u002Fgithub.com\u002FFudanSELab\u002Ftrain-ticket\u002F)**:\n![train-ticket.png](https:\u002F\u002Fraw.githubusercontent.com\u002Fphilippemerle\u002FKubeDiagrams\u002Frefs\u002Fheads\u002Fmain\u002Fexamples\u002Ftrain-ticket\u002Ftrain-ticket.png)\n\nArchitecture diagram of the Minikube Ingress Addon:\n![Minikube Ingress Addon](https:\u002F\u002Fraw.githubusercontent.com\u002Fphilippemerle\u002FKubeDiagrams\u002Frefs\u002Fheads\u002Fmain\u002Fexamples\u002Fminikube\u002Fminikube-ingress-nginx.png)\n\nArchitecture diagram for the **[Kube Prometheus Stack](https:\u002F\u002Fgithub.com\u002Fprometheus-community\u002Fhelm-charts\u002Ftree\u002Fmain\u002Fcharts\u002Fkube-prometheus-stack)** chart:\n![kube-prometheus-stack.png](https:\u002F\u002Fraw.githubusercontent.com\u002Fphilippemerle\u002FKubeDiagrams\u002Frefs\u002Fheads\u002Fmain\u002Fexamples\u002Fkube-prometheus-stack\u002Fkube-prometheus-stack.png)\n\nArchitecture diagram for **[free5gc-k8s](https:\u002F\u002Fgithub.com\u002Fniloysh\u002Ffree5gc-k8s)** manifests:\n![free5gc-k8s-diagram.png](https:\u002F\u002Fraw.githubusercontent.com\u002Fphilippemerle\u002FKubeDiagrams\u002Frefs\u002Fheads\u002Fmain\u002Fexamples\u002Ffree5gc-k8s\u002Ffree5gc-k8s-diagram.png)\n\nArchitecture diagram for **[open5gs-k8s](https:\u002F\u002Fgithub.com\u002Fniloysh\u002Fopen5gs-k8s)** manifests:\n![open5gs-k8s-diagram.png](https:\u002F\u002Fraw.githubusercontent.com\u002Fphilippemerle\u002FKubeDiagrams\u002Frefs\u002Fheads\u002Fmain\u002Fexamples\u002Fopen5gs-k8s\u002Fopen5gs-k8s-diagram.png)\n\nArchitecture diagram for the **[Towards5GS-helm](https:\u002F\u002Fgithub.com\u002FOrange-OpenSource\u002Ftowards5gs-helm)** chart:\n![towards5gs_free5gc.png](https:\u002F\u002Fraw.githubusercontent.com\u002Fphilippemerle\u002FKubeDiagrams\u002Frefs\u002Fheads\u002Fmain\u002Fexamples\u002Ftowards5gs-helm\u002Ftowards5gs_free5gc.png)\n\nArchitecture diagram for a deployed **CronJob** instance:\n![cronjob-deployed.png](https:\u002F\u002Fraw.githubusercontent.com\u002Fphilippemerle\u002FKubeDiagrams\u002Frefs\u002Fheads\u002Fmain\u002Fexamples\u002Fmiscellaneous\u002Fcronjob-deployed.png)\n\nArchitecture diagram for **NetworkPolicy** resources: ![network_policies.png](https:\u002F\u002Fraw.githubusercontent.com\u002Fphilippemerle\u002FKubeDiagrams\u002Frefs\u002Fheads\u002Fmain\u002Fexamples\u002Fmiscellaneous\u002Fnetwork_policies.png)\n\nArchitecture diagram for an **Argo CD** example:\n![argoproj-argocd-example-apps-apps.png](https:\u002F\u002Fraw.githubusercontent.com\u002Fphilippemerle\u002FKubeDiagrams\u002Frefs\u002Fheads\u002Fmain\u002Fexamples\u002Fargo\u002Fdiagrams\u002Fargoproj-argocd-example-apps-apps.png)\n\nArchitecture diagram for an **Argo Events** example:\n![argoproj-argo-events-examples.png](https:\u002F\u002Fraw.githubusercontent.com\u002Fphilippemerle\u002FKubeDiagrams\u002Frefs\u002Fheads\u002Fmain\u002Fexamples\u002Fargo\u002Fdiagrams\u002Fargoproj-argo-events-examples.png)\n\nMany other architecture diagrams are available into [examples\u002F](https:\u002F\u002Fgithub.com\u002Fphilippemerle\u002FKubeDiagrams\u002Fblob\u002Fmain\u002Fexamples\u002F).\n\n### Business Applications\n\n1. [Bank of Anthos](https:\u002F\u002Fgithub.com\u002Fphilippemerle\u002FKubeDiagrams\u002Fblob\u002Fmain\u002Fexamples\u002Fbank-of-anthos\u002F)\n1. [DeathStarBench](https:\u002F\u002Fgithub.com\u002Fphilippemerle\u002FKubeDiagrams\u002Fblob\u002Fmain\u002Fexamples\u002Fdeathstarbench\u002F)\n1. [Official Kubernetes WordPress tutorial](https:\u002F\u002Fgithub.com\u002Fphilippemerle\u002FKubeDiagrams\u002Fblob\u002Fmain\u002Fexamples\u002Fwordpress\u002F)\n1. [Official Kubernetes ZooKeeper tutorial](https:\u002F\u002Fgithub.com\u002Fphilippemerle\u002FKubeDiagrams\u002Fblob\u002Fmain\u002Fexamples\u002Fzookeeper\u002F)\n1. [Official Kubernetes Cassandra tutorial](https:\u002F\u002Fgithub.com\u002Fphilippemerle\u002FKubeDiagrams\u002Fblob\u002Fmain\u002Fexamples\u002Fcassandra\u002F)\n1. [Online Boutique](https:\u002F\u002Fgithub.com\u002Fphilippemerle\u002FKubeDiagrams\u002Fblob\u002Fmain\u002Fexamples\u002Fonline-boutique\u002F)\n1. [OpenTelemetry Demo](https:\u002F\u002Fgithub.com\u002Fphilippemerle\u002FKubeDiagrams\u002Ftree\u002Fmain\u002Fexamples\u002Fopentelemetry-demo)\n1. [TeaStore](https:\u002F\u002Fgithub.com\u002Fphilippemerle\u002FKubeDiagrams\u002Fblob\u002Fmain\u002Fexamples\u002Fteastore\u002F)\n1. [Train Ticket](https:\u002F\u002Fgithub.com\u002Fphilippemerle\u002FKubeDiagrams\u002Fblob\u002Fmain\u002Fexamples\u002Ftrain-ticket\u002F)\n\n### 5G Core Network Functions\n\n1. [free5gc-k8s](https:\u002F\u002Fgithub.com\u002Fphilippemerle\u002FKubeDiagrams\u002Fblob\u002Fmain\u002Fexamples\u002Ffree5gc-k8s\u002F)\n1. [docker-open5gs](https:\u002F\u002Fgithub.com\u002Fphilippemerle\u002FKubeDiagrams\u002Fblob\u002Fmain\u002Fexamples\u002Fdocker-open5gs\u002F)\n1. [Gradiant 5G Charts](https:\u002F\u002Fgithub.com\u002Fphilippemerle\u002FKubeDiagrams\u002Fblob\u002Fmain\u002Fexamples\u002Fgradiant-5g-charts)\n1. [open5gs-k8s](https:\u002F\u002Fgithub.com\u002Fphilippemerle\u002FKubeDiagrams\u002Fblob\u002Fmain\u002Fexamples\u002Fopen5gs-k8s\u002F)\n1. [OpenAirInterface 5G Core Network](https:\u002F\u002Fgithub.com\u002Fphilippemerle\u002FKubeDiagrams\u002Fblob\u002Fmain\u002Fexamples\u002Foai-5g-cn\u002F)\n1. [Towards5GS-helm](https:\u002F\u002Fgithub.com\u002Fphilippemerle\u002FKubeDiagrams\u002Fblob\u002Fmain\u002Fexamples\u002Ftowards5gs-helm\u002F)\n\n### Kubernetes Operators\n\n1. [Argo](https:\u002F\u002Fgithub.com\u002Fphilippemerle\u002FKubeDiagrams\u002Fblob\u002Fmain\u002Fexamples\u002Fargo\u002F)\n1. [cert-manager](https:\u002F\u002Fgithub.com\u002Fphilippemerle\u002FKubeDiagrams\u002Fblob\u002Fmain\u002Fexamples\u002Fcert-manager\u002F)\n1. [External Secrets Operator](https:\u002F\u002Fgithub.com\u002Fphilippemerle\u002FKubeDiagrams\u002Fblob\u002Fmain\u002Fexamples\u002Fexternal-secrets\u002F)\n1. [Istio](https:\u002F\u002Fgithub.com\u002Fphilippemerle\u002FKubeDiagrams\u002Fblob\u002Fmain\u002Fexamples\u002Fistio\u002F)\n1. [Kube Prometheus Stack](https:\u002F\u002Fgithub.com\u002Fphilippemerle\u002FKubeDiagrams\u002Fblob\u002Fmain\u002Fexamples\u002Fkube-prometheus-stack\u002F)\n1. [LeaderWorkerSet API](https:\u002F\u002Fgithub.com\u002Fphilippemerle\u002FKubeDiagrams\u002Fblob\u002Fmain\u002Fexamples\u002Flws\u002F)\n\n### Kubernetes Control Planes\n\n1. [k0s architecture diagrams](https:\u002F\u002Fgithub.com\u002Fphilippemerle\u002FKubeDiagrams\u002Fblob\u002Fmain\u002Fexamples\u002Fk0s\u002F)\n1. [minikube architecture diagrams](https:\u002F\u002Fgithub.com\u002Fphilippemerle\u002FKubeDiagrams\u002Fblob\u002Fmain\u002Fexamples\u002Fminikube\u002F)\n\n### Other examples\n\n1. [Custom Object Items](https:\u002F\u002Fgithub.com\u002Fphilippemerle\u002FKubeDiagrams\u002Fblob\u002Fmain\u002Fexamples\u002Fcustom-object-items\u002F)\n1. [Some Helm charts](https:\u002F\u002Fgithub.com\u002Fphilippemerle\u002FKubeDiagrams\u002Fblob\u002Fmain\u002Fexamples\u002Fhelm-charts\u002F)\n1. [helmfile](https:\u002F\u002Fgithub.com\u002Fphilippemerle\u002FKubeDiagrams\u002Fblob\u002Fmain\u002Fexamples\u002Fhelmfile\u002F)\n1. [Inside workloads](https:\u002F\u002Fgithub.com\u002Fphilippemerle\u002FKubeDiagrams\u002Fblob\u002Fmain\u002Fexamples\u002Finside-workloads\u002F)\n1. [Miscellaneous examples](https:\u002F\u002Fgithub.com\u002Fphilippemerle\u002FKubeDiagrams\u002Fblob\u002Fmain\u002Fexamples\u002Fmiscellaneous\u002F)\n\n## Prerequisites\n\nFollowing software must be installed:\n\n- [Python](https:\u002F\u002Fwww.python.org) 3.9 or higher\n- `dot` command ([Graphviz](https:\u002F\u002Fwww.graphviz.org\u002F))\n\n## Getting Started\n\n### Online with nothing to install on your machine\n\nYou could test **KubeDiagrams** directly from your favorite Web browser **[here](https:\u002F\u002Fkubediagrams.lille.inria.fr\u002F)**.\n\n### From PyPI\n\nFollowing command installs **KubeDiagrams** and all its Python dependencies, i.e., [PyYAML](https:\u002F\u002Fpyyaml.org), [Diagrams](https:\u002F\u002Fdiagrams.mingrammer.com\u002F), and [graphviz2drawio](https:\u002F\u002Fpypi.org\u002Fproject\u002Fgraphviz2drawio).\n\n```ssh\n# using pip (pip3)\npip install KubeDiagrams\n```\n\n### From Nix\n\nAlternatively, you can install via Nix:\n\n```sh\nnix shell github:philippemerle\u002FKubeDiagrams\n```\n\n### From Docker Hub\n\n**KubeDiagrams** container images are available in [Docker Hub](https:\u002F\u002Fhub.docker.com\u002Fr\u002Fphilippemerle\u002Fkubediagrams).\nYou can download the latest container image via:\n\n```sh\ndocker pull philippemerle\u002Fkubediagrams\n```\n\n### From source\n\nYou can start directly from source:\n\n```sh\n# clone the KubeDiagrams repository\ngit clone https:\u002F\u002Fgithub.com\u002Fphilippemerle\u002FKubeDiagrams.git\n\n# install required Python packages\npip install PyYAML diagrams\n\n# make KubeDiagrams commands available into $PATH\nPATH=$(pwd)\u002FKubeDiagrams\u002Fbin:$PATH\n```\n\n### From Windows\n\nTo use **KubeDiagrams** from Windows operating system, only the container image is supported currently.\n\n> [!NOTE]\n>\n> Any contribution would be welcome to translate KubeDiagrams' Unix-based scripts to Windows-based scripts.\n\n## Usage\n\n**KubeDiagrams** provides two commands: `kube-diagrams` and `helm-diagrams`.\n\n### `kube-diagrams`\n\n`kube-diagrams` generates a Kubernetes architecture diagram from one or several Kubernetes manifest files.\n\n```sh\nkube-diagrams -h\nusage: kube-diagrams [-h] [-o OUTPUT] [-f FORMAT] [-c CONFIG] [-v] [--without-namespace] filename [filename ...]\n\nGenerate Kubernetes architecture diagrams from Kubernetes manifest files\n\npositional arguments:\n  filename              the Kubernetes manifest filename to process\n\noptions:\n  -h, --help            show this help message and exit\n  -o, --output OUTPUT   output diagram filename\n  -f, --format FORMAT   output format, allowed formats are dot, dot_json, drawio, gif, jp2, jpe, jpeg, jpg, pdf, png, svg, tif, tiff, set to png by default\n  --embed-all-icons     embed all icons into svg or dot_json output diagrams\n  -c, --config CONFIG   custom kube-diagrams configuration file\n  -n, --namespace NAMESPACE\n                        visualize only the resources inside a given namespace\n  -v, --verbose         verbosity, set to false by default\n  --without-namespace   disable namespace cluster generation\n```\n\nExamples:\n\n```sh\n# generate a diagram from a manifest\nkube-diagrams -o cassandra.png examples\u002Fcassandra\u002Fcassandra.yml\n\n# generate a diagram from a kustomize folder\nkubectl kustomize path_to_a_kustomize_folder | kube-diagrams - -o diagram.png\n\n# generate a diagram from a helmfile descriptor\nhelmfile template -f helmfile.yaml | kube-diagrams - -o diagram.png\n\n# generate a diagram from the actual default namespace state\nkubectl get all -o yaml | kube-diagrams -o default-namespace.png -\n\n# generate a diagram of all workload and service resources from all namespaces\nkubectl get all --all-namespaces -o yaml | kube-diagrams -o all-namespaces.png -\n```\n\n#### 🧩 `kubectl` Plugin Support\n\nYou can use KubeDiagrams as a `kubectl` plugin as well for a more integrated Kubernetes workflow. This allows you to run commands like:\n\n```sh\nkubectl diagrams all -o diagram.png\n```\n\nTo enable this, simply symlink or copy the [`kubectl-diagrams`](.\u002Fbin\u002Fkubectl-diagrams) script onto your `$PATH`:\n\n```sh\nln -s $(which kubectl-diagrams) \u002Fusr\u002Flocal\u002Fbin\u002Fkubectl-diagrams\n```\n\n> [!NOTE]\n>\n> You will also already need `kube-diagrams` on your `$PATH` as well for this to work.\n\nYou can alternatively install it via Nix:\n\n```sh\nnix shell github:philippemerle\u002FKubeDiagrams#kubectl-diagrams\n```\n\n### `helm-diagrams`\n\n`helm-diagrams` generates a Kubernetes architecture diagram from an Helm chart.\n\n```sh\nUsage: helm-diagrams \u003Chelm-chart-url> [OPTIONS] [FLAGS]\n\nA script to generate a diagram of an Helm chart using kube-diagrams.\n\nOptions:\n  -o, --output \u003Cfile>          Specify the output file for the diagram\n  -f, --format \u003Cformat>        Specify the output format (e.g., png, svg)\n  --embed-all-icons            Embed all icons into svg or dot_json output diagrams\n  -c, --config \u003Cfile>          Specify the custom kube-diagrams configuration file\n  -h, --help                   Display this help message\n\nAny flag supported by helm template, e.g.:\n  -g, --generate-name          Generate the name (and omit the NAME parameter)\n  --include-crds               Include CRDs in the templated output\n  -l, --labels stringToString  Labels that would be added to release metadata. Should be divided by comma. (default [])\n  --name-template string       Specify template used to name the release\n  --set stringArray            Set values on the command line (can specify multiple or separate values with commas: key1=val1,key2=val2)\n  --set-file stringArray       Set values from respective files specified via the command line (can specify multiple or separate values with commas: key1=path1,key2=path2)\n  --set-json stringArray       Set JSON values on the command line (can specify multiple or separate values with commas: key1=jsonval1,key2=jsonval2)\n  --set-literal stringArray    Set a literal STRING value on the command line\n  --set-string stringArray     Set STRING values on the command line (can specify multiple or separate values with commas: key1=val1,key2=val2)\n  -f, --values strings         Specify values in a YAML file or a URL (can specify multiple)\n  --version string             Specify a version constraint for the chart version to use. This constraint can be a specific tag (e.g. 1.1.1) or it may reference a valid range (e.g. ^2.0.0). If this is not specified, the latest version is used\n\nExamples:\n  helm-diagrams https:\u002F\u002Fcharts.jetstack.io\u002Fcert-manager -o diagram.png\n  helm-diagrams https:\u002F\u002Fcharts.jetstack.io\u002Fcert-manager --set crds.enabled=true -o cert-manager.png\n  helm-diagrams oci:\u002F\u002Fghcr.io\u002Fargoproj\u002Fargo-helm\u002Fargo-cd -f svg\n  helm-diagrams --help\n```\n\n> [!NOTE]\n>\n> `helm-diagrams` requires that the `helm` command was installed.\n\nExamples:\n\n```ssh\n# generate a diagram for the Helm chart 'cert-manager' available in HTTP repository 'charts.jetstack.io'\nhelm-diagrams https:\u002F\u002Fcharts.jetstack.io\u002Fcert-manager\n\n# generate a diagram for the Helm chart 'argo-cd' available in OCI repository 'ghcr.io'\nhelm-diagrams oci:\u002F\u002Fghcr.io\u002Fargoproj\u002Fargo-helm\u002Fargo-cd\n\n# generate a diagram for the Helm chart 'some-chart' available locally\nhelm-diagrams some-path\u002Fsome-chart\n```\n\n### With Docker\u002FPodman\n\n**KubeDiagrams** images are available in [Docker Hub](https:\u002F\u002Fhub.docker.com\u002Fr\u002Fphilippemerle\u002Fkubediagrams).\n\n```ssh\n# For usage with Podman, replace 'docker' by 'podman' in the following lines.\n\n# generate a diagram from a manifest\ndocker run -v \"$(pwd)\":\u002Fwork philippemerle\u002Fkubediagrams kube-diagrams -o cassandra.png examples\u002Fcassandra\u002Fcassandra.yml\n\n# generate a diagram from a kustomize folder\nkubectl kustomize path_to_a_kustomize_folder | docker run -v \"$(pwd)\":\u002Fwork -i philippemerle\u002Fkubediagrams kube-diagrams - -o diagram.png\n\n# generate a diagram from a helmfile descriptor\nhelmfile template -f helmfile.yaml | docker run -v \"$(pwd)\":\u002Fwork -i philippemerle\u002Fkubediagrams kube-diagrams - -o diagram.png\n\n# generate a diagram from the actual default namespace state\nkubectl get all -o yaml | docker run -v \"$(pwd)\":\u002Fwork -i philippemerle\u002Fkubediagrams kube-diagrams -o default-namespace.png -\n\n# generate a diagram of all workload and service resources from all namespaces\nkubectl get all --all-namespaces -o yaml | docker run -v \"$(pwd)\":\u002Fwork -i philippemerle\u002Fkubediagrams kube-diagrams -o all-namespaces.png -\n\n# generate a diagram for the Helm chart 'cert-manager' available in HTTP repository 'charts.jetstack.io'\ndocker run -v \"$(pwd)\":\u002Fwork philippemerle\u002Fkubediagrams helm-diagrams https:\u002F\u002Fcharts.jetstack.io\u002Fcert-manager\n\n# generate a diagram for the Helm chart 'argo-cd' available in OCI repository 'ghcr.io'\ndocker run -v \"$(pwd)\":\u002Fwork philippemerle\u002Fkubediagrams helm-diagrams oci:\u002F\u002Fghcr.io\u002Fargoproj\u002Fargo-helm\u002Fargo-cd\n```\n\n### GitHub Action\n\nYou can use **KubeDiagrams** (and Helm Diagrams) in your GitHub Action workflows.\n\n```yaml\nname: \"Your GitHub Action Name\"\non:\n  workflow_dispatch: # add your specific triggers (https:\u002F\u002Fdocs.github.com\u002Fen\u002Factions\u002Fwriting-workflows\u002Fchoosing-when-your-workflow-runs\u002Fevents-that-trigger-workflows)\njobs:\n  test:\n    runs-on: ubuntu-latest\n    steps:\n      - name: \"Generate diagram from Kubernetes manifest\"\n        uses: philippemerle\u002FKubeDiagrams@main\n        with:\n          type: \"kubernetes\"\n          args: \"-o examples\u002Fcassandra\u002Fcassandra.png examples\u002Fcassandra\u002Fcassandra.yml\"\n\n      - name: \"Generate diagram from Helm chart\"\n        uses: philippemerle\u002FKubeDiagrams@main\n        with:\n          type: \"helm\"\n          args: \"https:\u002F\u002Fcharts.jetstack.io\u002Fcert-manager\"\n```\n\nAction `philippemerle\u002FKubeDiagrams@main` is available [here](https:\u002F\u002Fraw.githubusercontent.com\u002Fphilippemerle\u002FKubeDiagrams\u002Frefs\u002Fheads\u002Fmain\u002Faction.yml).\n\n## Features\n\n### Kubernetes built-in resources\n\n**KubeDiagrams** supported the following 47 Kubernetes resource types:\n\n|               Kind               |            ApiGroup            |           Versions            |                                                                          Icon                                                                          |\n| :------------------------------: | :----------------------------: | :---------------------------: | :----------------------------------------------------------------------------------------------------------------------------------------------------: |\n|           `APIService`           |    `apiregistration.k8s.io`    |        `v1beta1` `v1`         |                  ![APIService](https:\u002F\u002Fraw.githubusercontent.com\u002Fphilippemerle\u002FKubeDiagrams\u002Frefs\u002Fheads\u002Fmain\u002Fbin\u002Ficons\u002Fapiservice.png)                  |\n|          `ClusterRole`           |  `rbac.authorization.k8s.io`   |        `v1beta1` `v1`         |          ![ClusterRole](https:\u002F\u002Fraw.githubusercontent.com\u002Fkubernetes\u002Fcommunity\u002Frefs\u002Fheads\u002Fmain\u002Ficons\u002Fpng\u002Fresources\u002Flabeled\u002Fc-role-128.png)           |\n|       `ClusterRoleBinding`       |  `rbac.authorization.k8s.io`   |        `v1beta1` `v1`         |        ![ClusterRoleBinding](https:\u002F\u002Fraw.githubusercontent.com\u002Fkubernetes\u002Fcommunity\u002Frefs\u002Fheads\u002Fmain\u002Ficons\u002Fpng\u002Fresources\u002Flabeled\u002Fcrb-128.png)         |\n|           `ConfigMap`            |                                |             `v1`              |             ![ConfigMap](https:\u002F\u002Fraw.githubusercontent.com\u002Fkubernetes\u002Fcommunity\u002Frefs\u002Fheads\u002Fmain\u002Ficons\u002Fpng\u002Fresources\u002Flabeled\u002Fcm-128.png)              |\n|            `CronJob`             |            `batch`             |        `v1beta1` `v1`         |            ![CronJob](https:\u002F\u002Fraw.githubusercontent.com\u002Fkubernetes\u002Fcommunity\u002Frefs\u002Fheads\u002Fmain\u002Ficons\u002Fpng\u002Fresources\u002Flabeled\u002Fcronjob-128.png)            |\n|           `CSIDriver`            |        `storage.k8s.io`        |        `v1beta1` `v1`         |                   ![CSIDriver](https:\u002F\u002Fraw.githubusercontent.com\u002Fphilippemerle\u002FKubeDiagrams\u002Frefs\u002Fheads\u002Fmain\u002Fbin\u002Ficons\u002Fcsidriver.png)                   |\n|            `CSINode`             |        `storage.k8s.io`        |             `v1`              |                     ![CSINode](https:\u002F\u002Fraw.githubusercontent.com\u002Fphilippemerle\u002FKubeDiagrams\u002Frefs\u002Fheads\u002Fmain\u002Fbin\u002Ficons\u002Fcsinode.png)                     |\n|       `CSIStorageCapacity`       |        `storage.k8s.io`        |             `v1`              |                ![CSIStorageCapacity](https:\u002F\u002Fraw.githubusercontent.com\u002Fphilippemerle\u002FKubeDiagrams\u002Frefs\u002Fheads\u002Fmain\u002Fbin\u002Ficons\u002Fcsisc.png)                 |\n|    `CustomResourceDefinition`    |     `apiextensions.k8s.io`     |        `v1beta1` `v1`         |     ![CustomResourceDefinition](https:\u002F\u002Fraw.githubusercontent.com\u002Fkubernetes\u002Fcommunity\u002Frefs\u002Fheads\u002Fmain\u002Ficons\u002Fpng\u002Fresources\u002Flabeled\u002Fcrd-128.png)      |\n|           `DaemonSet`            |    `apps` `extensions`         |   `v1beta1` `v1beta2` `v1`    |             ![DaemonSet](https:\u002F\u002Fraw.githubusercontent.com\u002Fkubernetes\u002Fcommunity\u002Frefs\u002Fheads\u002Fmain\u002Ficons\u002Fpng\u002Fresources\u002Flabeled\u002Fds-128.png)              |\n|           `Deployment`           |         `apps` `extensions`    |   `v1beta1` `v1beta2` `v1`    |           ![Deployment](https:\u002F\u002Fraw.githubusercontent.com\u002Fkubernetes\u002Fcommunity\u002Frefs\u002Fheads\u002Fmain\u002Ficons\u002Fpng\u002Fresources\u002Flabeled\u002Fdeploy-128.png)           |\n|           `Endpoints`            |                                |             `v1`              |             ![Endpoints](https:\u002F\u002Fraw.githubusercontent.com\u002Fkubernetes\u002Fcommunity\u002Frefs\u002Fheads\u002Fmain\u002Ficons\u002Fpng\u002Fresources\u002Flabeled\u002Fep-128.png)              |\n|         `EndpointSlice`          |       `discovery.k8s.io`       |             `v1`              |                    ![EndpointSlice](https:\u002F\u002Fraw.githubusercontent.com\u002Fphilippemerle\u002FKubeDiagrams\u002Frefs\u002Fheads\u002Fmain\u002Fbin\u002Ficons\u002Feps.png)                    |\n|             `Group`              |  `rbac.authorization.k8s.io`   |             `v1`              |              ![Group](https:\u002F\u002Fraw.githubusercontent.com\u002Fkubernetes\u002Fcommunity\u002Frefs\u002Fheads\u002Fmain\u002Ficons\u002Fpng\u002Fresources\u002Flabeled\u002Fgroup-128.png)              |\n|    `HorizontalPodAutoscaler`     |         `autoscaling`          | `v1` `v2beta1` `v2beta2` `v2` |      ![HorizontalPodAutoscaler](https:\u002F\u002Fraw.githubusercontent.com\u002Fkubernetes\u002Fcommunity\u002Frefs\u002Fheads\u002Fmain\u002Ficons\u002Fpng\u002Fresources\u002Flabeled\u002Fhpa-128.png)      |\n|            `Ingress`             | `networking.k8s.io` `extensions` |        `v1beta1` `v1`         |              ![Ingress](https:\u002F\u002Fraw.githubusercontent.com\u002Fkubernetes\u002Fcommunity\u002Frefs\u002Fheads\u002Fmain\u002Ficons\u002Fpng\u002Fresources\u002Flabeled\u002Fing-128.png)              |\n|          `IngressClass`          |      `networking.k8s.io`       |        `v1beta1` `v1`         |                     ![IngressClass](https:\u002F\u002Fraw.githubusercontent.com\u002Fphilippemerle\u002FKubeDiagrams\u002Frefs\u002Fheads\u002Fmain\u002Fbin\u002Ficons\u002Fic.png)                     |\n|              `Job`               |            `batch`             |        `v1beta1` `v1`         |                ![Job](https:\u002F\u002Fraw.githubusercontent.com\u002Fkubernetes\u002Fcommunity\u002Frefs\u002Fheads\u002Fmain\u002Ficons\u002Fpng\u002Fresources\u002Flabeled\u002Fjob-128.png)                |\n|             `Lease`              |     `coordination.k8s.io`      |             `v1`              |                       ![Lease](https:\u002F\u002Fraw.githubusercontent.com\u002Fphilippemerle\u002FKubeDiagrams\u002Frefs\u002Fheads\u002Fmain\u002Fbin\u002Ficons\u002Flease.png)                       |\n|           `LimitRange`           |                                |             `v1`              |           ![LimitRange](https:\u002F\u002Fraw.githubusercontent.com\u002Fkubernetes\u002Fcommunity\u002Frefs\u002Fheads\u002Fmain\u002Ficons\u002Fpng\u002Fresources\u002Flabeled\u002Flimits-128.png)           |\n|  `MutatingWebhookConfiguration`  | `admissionregistration.k8s.io` |        `v1beta1` `v1`         |            ![MutatingWebhookConfiguration](https:\u002F\u002Fraw.githubusercontent.com\u002Fphilippemerle\u002FKubeDiagrams\u002Frefs\u002Fheads\u002Fmain\u002Fbin\u002Ficons\u002Fmwc.png)             |\n|           `Namespace`            |                                |             `v1`              |             ![Namespace](https:\u002F\u002Fraw.githubusercontent.com\u002Fkubernetes\u002Fcommunity\u002Frefs\u002Fheads\u002Fmain\u002Ficons\u002Fpng\u002Fresources\u002Flabeled\u002Fns-128.png)              |\n|  `NetworkAttachmentDefinition`   |       `k8s.cni.cncf.io`        |             `v1`              | ![NetworkAttachmentDefinition](https:\u002F\u002Fraw.githubusercontent.com\u002Fmingrammer\u002Fdiagrams\u002Frefs\u002Fheads\u002Fmaster\u002Fresources\u002Fazure\u002Fnetwork\u002Fnetwork-interfaces.png) |\n|         `NetworkPolicy`          |      `networking.k8s.io`       |             `v1`              |         ![NetworkPolicy](https:\u002F\u002Fraw.githubusercontent.com\u002Fkubernetes\u002Fcommunity\u002Frefs\u002Fheads\u002Fmain\u002Ficons\u002Fpng\u002Fresources\u002Flabeled\u002Fnetpol-128.png)          |\n|              `Node`              |                                |             `v1`              |       ![Node](https:\u002F\u002Fraw.githubusercontent.com\u002Fkubernetes\u002Fcommunity\u002Frefs\u002Fheads\u002Fmain\u002Ficons\u002Fpng\u002Finfrastructure_components\u002Flabeled\u002Fnode-128.png)       |\n|        `PersistentVolume`        |                                |             `v1`              |          ![PersistentVolume](https:\u002F\u002Fraw.githubusercontent.com\u002Fkubernetes\u002Fcommunity\u002Frefs\u002Fheads\u002Fmain\u002Ficons\u002Fpng\u002Fresources\u002Flabeled\u002Fpv-128.png)          |\n|     `PersistentVolumeClaim`      |                                |             `v1`              |       ![PersistentVolumeClaim](https:\u002F\u002Fraw.githubusercontent.com\u002Fkubernetes\u002Fcommunity\u002Frefs\u002Fheads\u002Fmain\u002Ficons\u002Fpng\u002Fresources\u002Flabeled\u002Fpvc-128.png)       |\n|              `Pod`               |                                |             `v1`              |                ![Pod](https:\u002F\u002Fraw.githubusercontent.com\u002Fkubernetes\u002Fcommunity\u002Frefs\u002Fheads\u002Fmain\u002Ficons\u002Fpng\u002Fresources\u002Flabeled\u002Fpod-128.png)                |\n|      `PodDisruptionBudget`       |            `policy`            |        `v1beta1` `v1`         |                 ![PodDisruptionBudget](https:\u002F\u002Fraw.githubusercontent.com\u002Fphilippemerle\u002FKubeDiagrams\u002Frefs\u002Fheads\u002Fmain\u002Fbin\u002Ficons\u002Fpdb.png)                 |\n|       `PodSecurityPolicy`        |     `policy` `extensions`      |        `v1beta1` `v1`         |         ![PodSecurityPolicy](https:\u002F\u002Fraw.githubusercontent.com\u002Fkubernetes\u002Fcommunity\u002Frefs\u002Fheads\u002Fmain\u002Ficons\u002Fpng\u002Fresources\u002Flabeled\u002Fpsp-128.png)         |\n|          `PodTemplate`           |                                |             `v1`              |                 ![PodTemplate](https:\u002F\u002Fraw.githubusercontent.com\u002Fphilippemerle\u002FKubeDiagrams\u002Frefs\u002Fheads\u002Fmain\u002Fbin\u002Ficons\u002Fpodtemplate.png)                 |\n|         `PriorityClass`          |      `scheduling.k8s.io`       |        `v1beta1` `v1`         |                    ![PriorityClass](https:\u002F\u002Fraw.githubusercontent.com\u002Fphilippemerle\u002FKubeDiagrams\u002Frefs\u002Fheads\u002Fmain\u002Fbin\u002Ficons\u002Fpc.png)                     |\n|           `ReplicaSet`           |             `apps`             |             `v1`              |             ![ReplicaSet](https:\u002F\u002Fraw.githubusercontent.com\u002Fkubernetes\u002Fcommunity\u002Frefs\u002Fheads\u002Fmain\u002Ficons\u002Fpng\u002Fresources\u002Flabeled\u002Frs-128.png)             |\n|     `ReplicationController`      |                                |             `v1`              |                ![ReplicationController](https:\u002F\u002Fraw.githubusercontent.com\u002Fphilippemerle\u002FKubeDiagrams\u002Frefs\u002Fheads\u002Fmain\u002Fbin\u002Ficons\u002Frc.png)                 |\n|         `ResourceQuota`          |                                |             `v1`              |          ![ResourceQuota](https:\u002F\u002Fraw.githubusercontent.com\u002Fkubernetes\u002Fcommunity\u002Frefs\u002Fheads\u002Fmain\u002Ficons\u002Fpng\u002Fresources\u002Flabeled\u002Fquota-128.png)          |\n|              `Role`              |  `rbac.authorization.k8s.io`   |        `v1beta1` `v1`         |               ![Role](https:\u002F\u002Fraw.githubusercontent.com\u002Fkubernetes\u002Fcommunity\u002Frefs\u002Fheads\u002Fmain\u002Ficons\u002Fpng\u002Fresources\u002Flabeled\u002Frole-128.png)               |\n|          `RoleBinding`           |  `rbac.authorization.k8s.io`   |        `v1beta1` `v1`         |            ![RoleBinding](https:\u002F\u002Fraw.githubusercontent.com\u002Fkubernetes\u002Fcommunity\u002Frefs\u002Fheads\u002Fmain\u002Ficons\u002Fpng\u002Fresources\u002Flabeled\u002Frb-128.png)             |\n|          `RuntimeClass`          |         `node.k8s.io`          |             `v1`              |                ![RuntimeClass](https:\u002F\u002Fraw.githubusercontent.com\u002Fphilippemerle\u002FKubeDiagrams\u002Frefs\u002Fheads\u002Fmain\u002Fbin\u002Ficons\u002Fruntimeclass.png)                |\n|             `Secret`             |                                |             `v1`              |             ![Secret](https:\u002F\u002Fraw.githubusercontent.com\u002Fkubernetes\u002Fcommunity\u002Frefs\u002Fheads\u002Fmain\u002Ficons\u002Fpng\u002Fresources\u002Flabeled\u002Fsecret-128.png)             |\n|            `Service`             |                                |             `v1`              |              ![Service](https:\u002F\u002Fraw.githubusercontent.com\u002Fkubernetes\u002Fcommunity\u002Frefs\u002Fheads\u002Fmain\u002Ficons\u002Fpng\u002Fresources\u002Flabeled\u002Fsvc-128.png)              |\n|         `ServiceAccount`         |                                |             `v1`              |           ![ServiceAccount](https:\u002F\u002Fraw.githubusercontent.com\u002Fkubernetes\u002Fcommunity\u002Frefs\u002Fheads\u002Fmain\u002Ficons\u002Fpng\u002Fresources\u002Flabeled\u002Fsa-128.png)           |\n|          `StatefulSet`           |             `apps`             |   `v1beta1` `v1beta2` `v1`    |            ![StatefulSet](https:\u002F\u002Fraw.githubusercontent.com\u002Fkubernetes\u002Fcommunity\u002Frefs\u002Fheads\u002Fmain\u002Ficons\u002Fpng\u002Fresources\u002Flabeled\u002Fsts-128.png)            |\n|          `StorageClass`          |        `storage.k8s.io`        |        `v1beta1` `v1`         |            ![StorageClass](https:\u002F\u002Fraw.githubusercontent.com\u002Fkubernetes\u002Fcommunity\u002Frefs\u002Fheads\u002Fmain\u002Ficons\u002Fpng\u002Fresources\u002Flabeled\u002Fsc-128.png)            |\n|              `User`              |  `rbac.authorization.k8s.io`   |             `v1`              |               ![User](https:\u002F\u002Fraw.githubusercontent.com\u002Fkubernetes\u002Fcommunity\u002Frefs\u002Fheads\u002Fmain\u002Ficons\u002Fpng\u002Fresources\u002Flabeled\u002Fuser-128.png)               |\n| `ValidatingWebhookConfiguration` | `admissionregistration.k8s.io` |        `v1beta1` `v1`         |           ![ValidatingWebhookConfiguration](https:\u002F\u002Fraw.githubusercontent.com\u002Fphilippemerle\u002FKubeDiagrams\u002Frefs\u002Fheads\u002Fmain\u002Fbin\u002Ficons\u002Fvwc.png)            |\n|     `VerticalPodAutoscaler`      |      `autoscaling.k8s.io`      |             `v1`              |                ![VerticalPodAutoscaler](https:\u002F\u002Fraw.githubusercontent.com\u002Fphilippemerle\u002FKubeDiagrams\u002Frefs\u002Fheads\u002Fmain\u002Fbin\u002Ficons\u002Fvpa.png)                |\n|        `VolumeAttachment`        |        `storage.k8s.io`        |             `v1`              |         ![VolumeAttachment](https:\u002F\u002Fraw.githubusercontent.com\u002Fkubernetes\u002Fcommunity\u002Frefs\u002Fheads\u002Fmain\u002Ficons\u002Fpng\u002Fresources\u002Flabeled\u002Fvol-128.png)          |\n\n**Note**: The mapping between these supported Kubernetes resources and architecture diagrams is defined into [bin\u002Fkube-diagrams.yml](https:\u002F\u002Fgithub.com\u002Fphilippemerle\u002FKubeDiagrams\u002Fblob\u002Fmain\u002Fbin\u002Fkube-diagrams.yaml#L103).\n\nCurrently, there are 16 unsupported Kubernetes resource types:\n\n|             Kind             |            ApiGroup            |\n| :--------------------------: | :----------------------------: |\n|          `Binding`           |                                |\n|      `ComponentStatus`       |                                |\n|           `Event`            |                                |\n|     `ControllerRevision`     |             `apps`             |\n|        `TokenReview`         |    `authentication.k8s.io`     |\n|  `LocalSubjectAccessReview`  |     `authorization.k8s.io`     |\n|  `SelfSubjectAccessReview`   |     `authorization.k8s.io`     |\n|     `SelfSubjectReview`      |     `authorization.k8s.io`     |\n|   `SelfSubjectRulesReview`   |     `authorization.k8s.io`     |\n|    `SubjectAccessReview`     |     `authorization.k8s.io`     |\n| `CertificateSigningRequest`  |     `certificates.k8s.io`      |\n|           `Event`            |        `events.k8s.io`         |\n|         `FlowSchema`         | `flowcontrol.apiserver.k8s.io` |\n| `PriorityLevelConfiguration` | `flowcontrol.apiserver.k8s.io` |\n|        `NodeMetrics`         |        `metrics.k8s.io`        |\n|         `PodMetrics`         |        `metrics.k8s.io`        |\n\n### Kubernetes custom resources\n\nThe mapping for any Kubernetes custom resources can be also defined into **KubeDiagrams** configuration files as illustrated in [examples\u002Fk0s\u002FKubeDiagrams.yml](https:\u002F\u002Fgithub.com\u002Fphilippemerle\u002FKubeDiagrams\u002Fblob\u002Fmain\u002Fexamples\u002Fk0s\u002FKubeDiagrams.yml#L10), [examples\u002Fkube-prometheus-stack\u002Fmonitoring.coreos.com.kdc](https:\u002F\u002Fgithub.com\u002Fphilippemerle\u002FKubeDiagrams\u002Fblob\u002Fmain\u002Fexamples\u002Fkube-prometheus-stack\u002Fmonitoring.coreos.com.kdc#L4), [examples\u002Flws\u002FKubeDiagrams.yml](https:\u002F\u002Fgithub.com\u002Fphilippemerle\u002FKubeDiagrams\u002Fblob\u002Fmain\u002Fexamples\u002Flws\u002FKubeDiagrams.yml#L19),\n[examples\u002Fargo\u002FKubeDiagrams.yaml](https:\u002F\u002Fgithub.com\u002Fphilippemerle\u002FKubeDiagrams\u002Fblob\u002Fmain\u002Fexamples\u002Fargo\u002FKubeDiagrams.yaml#L22), and [examples\u002Fexternal-secrets\u002Fexternal-secrets.io.kdc](https:\u002F\u002Fgithub.com\u002Fphilippemerle\u002FKubeDiagrams\u002Fblob\u002Fmain\u002Fexamples\u002Fexternal-secrets\u002Fexternal-secrets.io.kdc#L1).\nFollowing lists some custom resources already supported in [examples](https:\u002F\u002Fgithub.com\u002Fphilippemerle\u002FKubeDiagrams\u002Fblob\u002Fmain\u002Fexamples).\n\n|               Kind               |            ApiGroup            |           Versions            |                                                                          Icon                                                                          |\n| :------------------------------: | :----------------------------: | :---------------------------: | :----------------------------------------------------------------------------------------------------------------------------------------------------: |\n|           `Application`           |    `argoproj.io`    |        `v1alpha1`         |                  ![Application](https:\u002F\u002Fraw.githubusercontent.com\u002Fphilippemerle\u002FKubeDiagrams\u002Frefs\u002Fheads\u002Fmain\u002Fexamples\u002Fargo\u002Ficons\u002FApplication.png)                  |\n|           `EventBus`           |    `argoproj.io`    |        `v1alpha1`         |                  ![EventBus](https:\u002F\u002Fraw.githubusercontent.com\u002Fphilippemerle\u002FKubeDiagrams\u002Frefs\u002Fheads\u002Fmain\u002Fexamples\u002Fargo\u002Ficons\u002FEventBus.png)                  |\n|           `EventSource`           |    `argoproj.io`    |        `v1alpha1`         |                  ![EventSource](https:\u002F\u002Fraw.githubusercontent.com\u002Fphilippemerle\u002FKubeDiagrams\u002Frefs\u002Fheads\u002Fmain\u002Fexamples\u002Fargo\u002Ficons\u002FEventSource.png)                  |\n|           `Rollout`           |    `argoproj.io`    |        `v1alpha1`         |                  ![Rollout](https:\u002F\u002Fraw.githubusercontent.com\u002Fphilippemerle\u002FKubeDiagrams\u002Frefs\u002Fheads\u002Fmain\u002Fexamples\u002Fargo\u002Ficons\u002FRollout.png)                  |\n|           `Sensor`           |    `argoproj.io`    |        `v1alpha1`         |                  ![Sensor](https:\u002F\u002Fraw.githubusercontent.com\u002Fphilippemerle\u002FKubeDiagrams\u002Frefs\u002Fheads\u002Fmain\u002Fexamples\u002Fargo\u002Ficons\u002FSensor.png)                  |\n|           `Workflow`           |    `argoproj.io`    |        `v1alpha1`         |                  ![Workflow](https:\u002F\u002Fraw.githubusercontent.com\u002Fphilippemerle\u002FKubeDiagrams\u002Frefs\u002Fheads\u002Fmain\u002Fexamples\u002Fargo\u002Ficons\u002FWorkflow.png)                  |\n|           `Service`           |    `serving.knative.dev`    |        `v1`         |                  ![Service](https:\u002F\u002Fraw.githubusercontent.com\u002Fphilippemerle\u002FKubeDiagrams\u002Frefs\u002Fheads\u002Fmain\u002Fexamples\u002Fdeathstarbench\u002Ficons\u002Fknative-service.png)                  |\n|           `Route`           |    `route.openshift.io`    |        `v1`         |                  ![Route](https:\u002F\u002Fraw.githubusercontent.com\u002Fphilippemerle\u002FKubeDiagrams\u002Frefs\u002Fheads\u002Fmain\u002Fexamples\u002Fdeathstarbench\u002Ficons\u002Fopenshift-route.png)                  |\n|           `Chart`           |    `helm.k0sproject.io`    |        `v1beta1`         |                  ![Chart](https:\u002F\u002Fraw.githubusercontent.com\u002Fphilippemerle\u002FKubeDiagrams\u002Frefs\u002Fheads\u002Fmain\u002Fexamples\u002Fk0s\u002Ficons\u002Fk0s-Chart.png)                  |\n|           `ControlNode`           |    `autopilot.k0sproject.io`    |        `v1beta2`         |                  ![ControlNode](https:\u002F\u002Fraw.githubusercontent.com\u002Fphilippemerle\u002FKubeDiagrams\u002Frefs\u002Fheads\u002Fmain\u002Fexamples\u002Fk0s\u002Ficons\u002Fk0s-ControlNode.png)                  |\n|           `EtcdMember`           |    `etcd.k0sproject.io`    |        `v1beta1`         |                  ![EtcdMember](https:\u002F\u002Fraw.githubusercontent.com\u002Fphilippemerle\u002FKubeDiagrams\u002Frefs\u002Fheads\u002Fmain\u002Fexamples\u002Fk0s\u002Ficons\u002Fk0s-EtcdMember.png)                  |\n|           `Plan`           |    `autopilot.k0sproject.io`    |        `v1beta2`         |                  ![Plan](https:\u002F\u002Fraw.githubusercontent.com\u002Fphilippemerle\u002FKubeDiagrams\u002Frefs\u002Fheads\u002Fmain\u002Fexamples\u002Fk0s\u002Ficons\u002Fk0s-Plan.png)                  |\n|           `UpdateConfig`           |    `autopilot.k0sproject.io`    |        `v1beta2`         |                  ![UpdateConfig](https:\u002F\u002Fraw.githubusercontent.com\u002Fphilippemerle\u002FKubeDiagrams\u002Frefs\u002Fheads\u002Fmain\u002Fexamples\u002Fk0s\u002Ficons\u002Fk0s-UpdateConfig.png)                  |\n|           `Alertmanager`           |    `monitoring.coreos.com`    |        `v1`         |                  ![Alertmanager](https:\u002F\u002Fraw.githubusercontent.com\u002Fphilippemerle\u002FKubeDiagrams\u002Frefs\u002Fheads\u002Fmain\u002Fexamples\u002Fkube-prometheus-stack\u002Ficons\u002FAlertmanager.png)                  |\n|           `Prometheus`           |    `monitoring.coreos.com`    |        `v1`         |                  ![Prometheus](https:\u002F\u002Fraw.githubusercontent.com\u002Fphilippemerle\u002FKubeDiagrams\u002Frefs\u002Fheads\u002Fmain\u002Fexamples\u002Fkube-prometheus-stack\u002Ficons\u002FPrometheus.png)                  |\n|           `PrometheusRule`           |    `monitoring.coreos.com`    |        `v1`         |                  ![PrometheusRule](https:\u002F\u002Fraw.githubusercontent.com\u002Fphilippemerle\u002FKubeDiagrams\u002Frefs\u002Fheads\u002Fmain\u002Fexamples\u002Fkube-prometheus-stack\u002Ficons\u002FPrometheusRule.png)                  |\n|           `ServiceMonitor`           |    `monitoring.coreos.com`    |        `v1`         |                  ![ServiceMonitor](https:\u002F\u002Fraw.githubusercontent.com\u002Fphilippemerle\u002FKubeDiagrams\u002Frefs\u002Fheads\u002Fmain\u002Fexamples\u002Fkube-prometheus-stack\u002Ficons\u002FServiceMonitor.png)                  |\n|           `LeaderWorkerSet`           |    `leaderworkerset.x-k8s.io`    |        `v1`         |                  ![LeaderWorkerSet](https:\u002F\u002Fraw.githubusercontent.com\u002Fphilippemerle\u002FKubeDiagrams\u002Frefs\u002Fheads\u002Fmain\u002Fexamples\u002Flws\u002Ficons\u002Flws.png)                  |\n|           `Certificate`           |    `cert-manager.io`    |    `v1alpha1` `v1alpha2` `v1`    |                  ![Certificate](https:\u002F\u002Fraw.githubusercontent.com\u002Fmingrammer\u002Fdiagrams\u002Frefs\u002Fheads\u002Fmaster\u002Fresources\u002Fazure\u002Fweb\u002Fapp-service-certificates.png)                  |\n|           `ClusterIssuer`           |    `cert-manager.io`    |    `v1alpha1` `v1alpha2` `v1`    |                  ![ClusterIssuer](https:\u002F\u002Fraw.githubusercontent.com\u002Fmingrammer\u002Fdiagrams\u002Frefs\u002Fheads\u002Fmaster\u002Fresources\u002Faws\u002Fsecurity\u002Fcertificate-authority.png)                  |\n|           `Issuer`           |    `cert-manager.io`    |    `v1alpha1` `v1alpha2` `v1`    |                  ![Issuer](https:\u002F\u002Fraw.githubusercontent.com\u002Fmingrammer\u002Fdiagrams\u002Frefs\u002Fheads\u002Fmaster\u002Fresources\u002Faws\u002Fsecurity\u002Fcertificate-authority.png)                  |\n|           `ExternalSecret`           |    `external-secrets.io`    |    `v1alpha1` `v1beta1` `v1`    |                  ![ExternalSecret](https:\u002F\u002Fraw.githubusercontent.com\u002Fphilippemerle\u002FKubeDiagrams\u002Frefs\u002Fheads\u002Fmain\u002Fexamples\u002Fexternal-secrets\u002Ficons\u002FExternalSecret.png)                  |\n|           `SecretStore`           |    `external-secrets.io`    |    `v1alpha1` `v1beta1` `v1`    |                  ![SecretStore](https:\u002F\u002Fraw.githubusercontent.com\u002Fphilippemerle\u002FKubeDiagrams\u002Frefs\u002Fheads\u002Fmain\u002Fexamples\u002Fexternal-secrets\u002Ficons\u002FSecretStore.png)                  |\n\n### Kubernetes resources clustering\n\nWith **KubeDiagrams**, Kubernetes resources can be clustered within the architecture diagrams automatically. **KubeDiagrams** uses the `metadata.namespace` resource field as first clustering criteria. Then, the `metadata.labels` keys can be used to define subclusters. Following table lists the predefined mappings between label keys and cluster titles, and background colors as defined in the [bin\u002Fkube-diagrams.yml](https:\u002F\u002Fgithub.com\u002Fphilippemerle\u002FKubeDiagrams\u002Fblob\u002Fmain\u002Fbin\u002Fkube-diagrams.yaml#L31) file (see the `clusters` list).\n\n|           Label Key           |         Cluster Title          | Background Color | Recommended |\n| :---------------------------: | :----------------------------: | :----------------------------: | :----------------------------: |\n| `app.kubernetes.io\u002Finstance`  |  K8s Instance: `label value`   | ![Static Badge](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002F%20%20%20%20%20%20%20%20%20%20-E5F5FD) | Yes |\n|           `release`           |     Release: `label value`     | ![Static Badge](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002F%20%20%20%20%20%20%20%20%20%20-E5F5FD) | No |\n|        `helm.sh\u002Fchart`        |   Helm Chart: `label value`    | ![Static Badge](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002F%20%20%20%20%20%20%20%20%20%20-EBF3E7) | Yes |\n|            `chart`            |      Chart: `label value`      | ![Static Badge](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002F%20%20%20%20%20%20%20%20%20%20-EBF3E7) | No |\n|   `app.kubernetes.io\u002Fname`    | K8s Application: `label value` | ![Static Badge](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002F%20%20%20%20%20%20%20%20%20%20-ECE8F6) | Yes |\n|             `app`             |   Application: `label value`   | ![Static Badge](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002F%20%20%20%20%20%20%20%20%20%20-ECE8F6) | No |\n|            `tier`             |      Tier: `label value`       | ![Static Badge](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002F%20%20%20%20%20%20%20%20%20%20-ECE8F6) | No |\n| `app.kubernetes.io\u002Fcomponent` |  K8s Component: `label value`  | ![Static Badge](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002F%20%20%20%20%20%20%20%20%20%20-FDF7E3) | Yes |\n| `component`                   |  Component: `label value`      | ![Static Badge](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002F%20%20%20%20%20%20%20%20%20%20-FDF7E3) | No |\n|           `service`           |  Microservice: `label value`   | ![Static Badge](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002F%20%20%20%20%20%20%20%20%20%20-FDF7E3) | No |\n| `rbac.authorization.k8s.io\u002Faggregate-to-admin` |  Admin ClusterRole Aggregation  | transparent | Yes |\n| `rbac.authorization.k8s.io\u002Faggregate-to-edit` |  Edit ClusterRole Aggregation  | transparent | Yes |\n| `rbac.authorization.k8s.io\u002Faggregate-to-view` |  View ClusterRole Aggregation  | transparent | Yes |\n\nResource clustering could be also annotation-based, i.e. based on `metadata.annotations` keys. Following table lists the predefined mappings between annotation keys, cluster titles, and background colors as defined in the [bin\u002Fkube-diagrams.yml](https:\u002F\u002Fgithub.com\u002Fphilippemerle\u002FKubeDiagrams\u002Fblob\u002Fmain\u002Fbin\u002Fkube-diagrams.yaml#L97) file.\n\n| Annotation Key |   Cluster Title    |  Background Color  |   Recommended   |\n| :------------: | :----------------: | :----------------: | :----------------: |\n| `helm.sh\u002Fhook` | `annotation value` | ![Static Badge](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002F%20%20%20%20%20%20%20%20%20%20-EBF3E7) | Yes |\n\nNew label\u002Fannotation-based mappings can be easily defined in custom configuration files (see [examples\u002Fminikube\u002FKubeDiagrams.yml](https:\u002F\u002Fgithub.com\u002Fphilippemerle\u002FKubeDiagrams\u002Fblob\u002Fmain\u002Fexamples\u002Fminikube\u002FKubeDiagrams.yml#L2), [examples\u002Fk0s\u002FKubeDiagrams.yml](https:\u002F\u002Fgithub.com\u002Fphilippemerle\u002FKubeDiagrams\u002Fblob\u002Fmain\u002Fexamples\u002Fk0s\u002FKubeDiagrams.yml#L5), [examples\u002Ffree5gc-k8s\u002FKubeDiagrams.yml](https:\u002F\u002Fgithub.com\u002Fphilippemerle\u002FKubeDiagrams\u002Fblob\u002Fmain\u002Fexamples\u002Ffree5gc-k8s\u002FKubeDiagrams.yml#L2), [examples\u002Fopen5gs-k8s\u002FKubeDiagrams.yml](https:\u002F\u002Fgithub.com\u002Fphilippemerle\u002FKubeDiagrams\u002Fblob\u002Fmain\u002Fexamples\u002Fopen5gs-k8s\u002FKubeDiagrams.yml#L2), [examples\u002Ftowards5gs-helm\u002FKubeDiagrams.yml](https:\u002F\u002Fgithub.com\u002Fphilippemerle\u002FKubeDiagrams\u002Fblob\u002Fmain\u002Fexamples\u002Ftowards5gs-helm\u002FKubeDiagrams.yml#L2), [examples\u002Flws\u002FKubeDiagrams.yml](https:\u002F\u002Fgithub.com\u002Fphilippemerle\u002FKubeDiagrams\u002Fblob\u002Fmain\u002Fexamples\u002Flws\u002FKubeDiagrams.yml#L1), and [examples\u002Fargo\u002FKubeDiagrams.yaml](https:\u002F\u002Fgithub.com\u002Fphilippemerle\u002FKubeDiagrams\u002Fblob\u002Fmain\u002Fexamples\u002Fargo\u002FKubeDiagrams.yaml#L9))\nand provided to **KubeDiagrams** via the `--config` command-line option.\n\n### Kubernetes resource relationships\n\nWith **KubeDiagrams**, each relationship between Kubernetes resources is represented by a visual edge between visual nodes.\nFollowing table lists the predefined edges as defined in the [bin\u002Fkube-diagrams.yml](https:\u002F\u002Fgithub.com\u002Fphilippemerle\u002FKubeDiagrams\u002Fblob\u002Fmain\u002Fbin\u002Fkube-diagrams.yaml#L3) file (see the `edges` map).\n\n|    Edge Kind    | Edge Style | Edge Color |                                Meaning                                |\n| :-------------: | :--------: | :--------: | :-------------------------------------------------------------------: |\n|   `REFERENCE`   |  `solid`   |  `black`   |       Used when a resource refers to another resource directly        |\n|   `SELECTOR`    |  `dashed`  |  `black`   |     Used when a resource refers to other resources via a selector     |\n|     `OWNER`     |  `dotted`  |  `black`   |              Used when a resource owns another resource               |\n| `COMMUNICATION` |  `solid`   |  `brown`   | Used to represent ingress and egress networking policies between pods |\n\nNew edges can be easily defined or redefined in custom configuration files, and provided to **KubeDiagrams** via the `--config` command-line option.\n\nFollowing diagram illustrates all the visual nodes, edges, and clusters supported by default by **KubeDiagrams**.\n\n![semiotics.png](https:\u002F\u002Fraw.githubusercontent.com\u002Fphilippemerle\u002FKubeDiagrams\u002Frefs\u002Fheads\u002Fmain\u002Fimages\u002Fsemiotics.png).\n\nGenerated SVG diagrams contain tooltips for each cluster\u002Fnode\u002Fedge as illustrated in [images\u002Fsemiotics.svg](https:\u002F\u002Fraw.githubusercontent.com\u002Fphilippemerle\u002FKubeDiagrams\u002Frefs\u002Fheads\u002Fmain\u002Fimages\u002Fsemiotics.svg)\n\n### Declarative custom diagrams\n\nBy default, **KubeDiagrams** generates diagrams from data contained into Kubernetes manifest files, actual cluster state, kustomization files, or Helm charts automatically. But sometimes, users would like to customize generated diagrams by adding their own clusters, nodes and edges as illustrated in the following diagram:\n\n[![Custom diagram](https:\u002F\u002Fraw.githubusercontent.com\u002Fphilippemerle\u002FKubeDiagrams\u002Frefs\u002Fheads\u002Fmain\u002Fexamples\u002Fwordpress\u002Fwordpress_deployed_in_aws_eks.png)](https:\u002F\u002Fraw.githubusercontent.com\u002Fphilippemerle\u002FKubeDiagrams\u002Frefs\u002Fheads\u002Fmain\u002Fexamples\u002Fwordpress\u002Fwordpress_deployed_in_aws_eks.png)\n\nThis previous diagram contains three custom clusters labelled with `Amazon Web Service`, `Account: Philippe Merle` and `My Elastic Kubernetes Cluster`, three custom nodes labelled with `Users`, `Elastic Kubernetes Services`, and `Philippe Merle`, and two custom edges labelled with `use` and `calls`. The rest of this custom diagram is generated from actual cluster state for a deployed WordPress application automatically.\nHave a look to [examples\u002Fwordpress\u002Fcustom_diagram.kd](https:\u002F\u002Fraw.githubusercontent.com\u002Fphilippemerle\u002FKubeDiagrams\u002Frefs\u002Fheads\u002Fmain\u002Fexamples\u002Fwordpress\u002Fcustom_diagram.kd), [examples\u002Fonline-boutique\u002Fcustom_diagram.kd](https:\u002F\u002Fraw.githubusercontent.com\u002Fphilippemerle\u002FKubeDiagrams\u002Frefs\u002Fheads\u002Fmain\u002Fexamples\u002Fonline-boutique\u002Fcustom_diagram.kd), and\n[examples\u002Fcustom-object-items\u002Fconfig\u002Fcustom-object-items.kd](https:\u002F\u002Fraw.githubusercontent.com\u002Fphilippemerle\u002FKubeDiagrams\u002Frefs\u002Fheads\u002Fmain\u002Fexamples\u002Fcustom-object-items\u002Fconfig\u002Fcustom-object-items.kd) to see how to define custom diagrams, clusters, nodes and edges declaratively.\n\n## KubeDiagrams Interactive Viewer\n\n**KubeDiagrams** could output diagrams in the `dot_json` format. For instance, type:\n\n```sh\nkube-diagrams examples\u002Fwordpress\u002F*.yaml -o wordpress.dot_json\n```\n\nDiagrams in the `dot_json` format can be viewed and manipulated interactively thanks to **KubeDiagrams Interactive Viewer**. For instance, type:\n\n```sh\nopen interactive_viewer\u002Findex.html\n```\n\nThen open the `wordpress.dot_json` file:\n\n![KubeDiagrams Interactive Viewer](https:\u002F\u002Fraw.githubusercontent.com\u002Fphilippemerle\u002FKubeDiagrams\u002Frefs\u002Fheads\u002Fmain\u002Fimages\u002FKubeDiagrams-Interactive-Viewer.png)\n\n**KubeDiagrams Interactive Viewer** allows users to zoom in\u002Fout diagrams, to see cluster\u002Fnode\u002Fedge tooltips, open\u002Fclose clusters, move clusters\u002Fnodes interactively, and save as PNG\u002FJPG images.\n\n## KubeDiagrams WebApp\n\nA modern web app for **KubeDiagrams** is available in **[webapp](https:\u002F\u002Fgithub.com\u002Fphilippemerle\u002FKubeDiagrams\u002Ftree\u002Fmain\u002Fwebapp)**. See a demo in [this video](https:\u002F\u002Fraw.githubusercontent.com\u002Fphilippemerle\u002FKubeDiagrams\u002Frefs\u002Fheads\u002Fmain\u002Fdocs\u002FKubeDiagrams_WebApp.mp4).\n\n## Editable draw.io Export\n\n**KubeDiagrams** could output diagrams in the `drawio` format. For instance, type:\n\n```sh\nkube-diagrams examples\u002Fwordpress\u002F*.yaml -o wordpress.drawio\n```\n\n✨ Generated `drawio` files can be opened with [draw.io](https:\u002F\u002Fwww.drawio.com\u002F) or your favorite diagram editor.\n\n![KubeDiagrams in draw.io](https:\u002F\u002Fraw.githubusercontent.com\u002Fphilippemerle\u002FKubeDiagrams\u002Frefs\u002Fheads\u002Fmain\u002Fimages\u002FKubeDiagrams-drawio.png)\n\n## Architecture\n\nFollowing figure shows the software architecture of **KubeDiagrams**.\n\n![Architecture.png](https:\u002F\u002Fraw.githubusercontent.com\u002Fphilippemerle\u002FKubeDiagrams\u002Frefs\u002Fheads\u002Fmain\u002Fimages\u002FArchitecture.png)\n\n## Real-World Use Cases\n\nFollowing provides links to real-world use cases.\n\n### Documentation\n\n**KubeDiagrams** could be used to generate architectural diagrams documenting your Kubernetes applications (manifests, Helm charts, helmfiles, or cluster state). See following links:\n\n- [duoan\u002Ftinyurl](https:\u002F\u002Fgithub.com\u002Fduoan\u002Ftinyurl?tab=readme-ov-file#deployment-kubernetes)\n- [Daniel-Makhoba-Emmanuel\u002FFull-stack-k8s-lab](https:\u002F\u002Fdaniel-makhoba-emmanuel.github.io\u002FFull-stack-k8s-lab\u002Flab-setup\u002Farchitecture\u002F)\n- [david-shepard\u002Fflux-infra](https:\u002F\u002Fgithub.com\u002Fdavid-shepard\u002Fflux-infra?tab=readme-ov-file#%EF%B8%8F-architecture-overview)\n\n### Architectural defects identification\n\nDiagrams generated by **KubeDiagrams** could help you to identify architectural defects in your own or used Kubernetes applications. See following links:\n\n- [Gradiant\u002F5g-charts](https:\u002F\u002Fgithub.com\u002FGradiant\u002F5g-charts\u002Fpull\u002F218)\n- [argoproj\u002Fargo-cd](https:\u002F\u002Fgithub.com\u002Fargoproj\u002Fargo-cd\u002Fpull\u002F23313)\n- [argoproj\u002Fargo-events](https:\u002F\u002Fgithub.com\u002Fargoproj\u002Fargo-events\u002Fpull\u002F3627)\n- [argoproj\u002Fargo-helm](https:\u002F\u002Fgithub.com\u002Fargoproj\u002Fargo-helm\u002Fpull\u002F3350)\n\n### Debugging\n\nGenerated diagrams could help you to debug your own or used Kubernetes applications. See following links:\n\n- [How KubeDiagrams Saved My Day While Debugging Kubernetes at Porch](https:\u002F\u002Fwww.linkedin.com\u002Ffeed\u002Fupdate\u002Furn:li:activity:7340773828572172288\u002F)\n- [A subtle issue in Kube Prometheus Stack Helm Chart](https:\u002F\u002Fgithub.com\u002Fprometheus-community\u002Fhelm-charts\u002Fissues\u002F6039)\n\n### Your own real-world use cases\n\nDon't hesitate to submit your own real-world use cases as [pull requests](https:\u002F\u002Fgithub.com\u002Fphilippemerle\u002FKubeDiagrams\u002Fpulls).\n\n## What do they say about it?\n\n### Papers\n\n1. [Visualizing Cloud-native Applications with KubeDiagrams](https:\u002F\u002Fhal.science\u002Fhal-05263068). Philippe Merle and Fabio Petrillo. Proceedings of the [13th IEEE Working Conference on Software Visualization - VISSOFT 2025](https:\u002F\u002Fvissoft.io\u002F2025), pp.106-116, Auckland, New Zealand, September 2025.\n\n1. [Visualizing Cloud-native Applications with KubeDiagrams](http:\u002F\u002Farxiv.org\u002Fabs\u002F2505.22879). Philippe Merle and Fabio Petrillo. arXiv. May 28, 2025.\n\n### Talks\n\n1. [Visualizing Cloud-native Applications with KubeDiagrams](https:\u002F\u002Fgithub.com\u002Fphilippemerle\u002FKubeDiagrams\u002Fblob\u002Fmain\u002Fdocs\u002F2025-VISSOFT-slides.pdf), Philippe Merle, Fabio Petrillo. [13th IEEE Working Conference on Software Visualization (VISSOFT 2025)](https:\u002F\u002Fvissoft.io\u002F2025\u002F), Auckland, New Zealand, September 7-8, 2025.\n\n1. [Visualizing cloud-native applications with KubeDiagrams](https:\u002F\u002Fmybox.inria.fr\u002Ff\u002F61de0e6e5be94b7a941f\u002F?dl=1), Philippe Merle, [PEPR Cloud Taranis Project](https:\u002F\u002Fpepr-cloud.fr\u002Fen\u002Fproject-taranis\u002F), February 17, 2025.\n\n### Blogs\n\n1. [KubeDiagrams in action: turning kubectl get all into a visual architecture diagram, the strongest weapon for newbies onboarding](https:\u002F\u002Fwww.itnotetk.com\u002F2026\u002F04\u002F19\u002Fkubediagrams-%e5%af%a6%e6%88%b0%ef%bc%9a%e6%8a%8a-kubectl-get-all-%e8%ae%8a%e6%88%90%e8%a6%96%e8%a6%ba%e5%8c%96%e6%9e%b6%e6%a7%8b%e5%9c%96%ef%bc%8c%e6%96%b0%e4%ba%ba-onboarding-%e7%9a%84%e6%9c%80\u002F), Tony.Wu's Blog, April 19, 2026.\n\n1. [KubeDiagrams: Automatically Generate Stunning Kubernetes Architecture Diagrams from Code and Clusters](https:\u002F\u002Fengineering.01cloud.com\u002F2025\u002F12\u002F24\u002Fkubediagrams-automatically-generate-stunning-kubernetes-architecture-diagrams-from-code-and-clusters\u002F), 01 Cloud Engineering, December 24, 2025.\n\n1. [KubeDiagrams - Como gerar diagramas das suas arquiteturas Kubernetes](https:\u002F\u002Fwww.linkedin.com\u002Fpulse\u002Fkubediagrams-como-gerar-diagramas-das-suas-arquiteturas-kubernetes-9xbdf\u002F), Paulo Cerqueira, October 22, 2025.\n\n1. [Visualising the architecture of cloud-native applications with KubeDiagrams](https:\u002F\u002Fwww.inria.fr\u002Fen\u002Fvisualising-architecture-cloud-native-applications-kubediagrams), Inria, October 15, 2025.\n\n1. [KubeDiagrams: Automating your Kubernetes Architecture](https:\u002F\u002Fmedium.com\u002F@iamdanielemmanuelmark5\u002Fkubediagrams-automating-your-kubernetes-architecture-9f9b305a7bb4), Daniel Makhoba Emmanuel, Medium, June 19, 2025.\n\n1. [[Literature Review] Visualizing Cloud-native Applications with KubeDiagrams](https:\u002F\u002Fwww.themoonlight.io\u002Fen\u002Freview\u002Fvisualizing-cloud-native-applications-with-kubediagrams), Moonlight, May 27, 2025.\n\n1. [KubeDiagrams](https:\u002F\u002Fblog.csdn.net\u002Fgitblog_00745\u002Farticle\u002Fdetails\u002F147113830), CSDN, April 10, 2025.\n\n1. [Generate Kubernetes Architecture Maps Directly from Your Cluster](https:\u002F\u002Fblog.abhimanyu-saharan.com\u002Fposts\u002Fgenerate-kubernetes-architecture-maps-directly-from-your-cluster), Abhimanyu Saharan, March 29, 2025.\n\n1. [KubeDiagrams 0.2.0 Makes It Way Easier to Visualize Your Kubernetes Setup](https:\u002F\u002Fmedium.com\u002F@PlanB.\u002Fkubediagrams-0-2-0-makes-it-way-easier-to-visualize-your-kubernetes-setup-bb65dd72668c), Mr.PlanB, Medium, March 27, 2025.\n\n1. [Visualising SQL Server in Kubernetes](https:\u002F\u002Fdbafromthecold.com\u002F2025\u002F02\u002F06\u002Fvisualising-sql-server-in-kubernetes\u002F), Andrew Pruski, February 6, 2025.\n\n### Social Networks\n\n1. [Bart Farrell's post](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fbart-farrell_most-kubernetes-architecture-diagrams-are-ugcPost-7460742208980242432-9ufJ\u002F) on LinkedIn, May 14, 2026.\n\n1. [Kube Architect's post](https:\u002F\u002Fx.com\u002FK8sArchitect\u002Fstatus\u002F2054586480761176326) on X, May 13, 2026.\n\n1. [Vaishnavi's post](https:\u002F\u002Fx.com\u002F_vmlops\u002Fstatus\u002F2052054847961407828) on X, May 6, 2026.\n\n1. [Nidouille's post](https:\u002F\u002Fx.com\u002F_Nidouille_\u002Fstatus\u002F2051965165415825911) on X, May 6, 2026.\n\n1. [Ayaan's post](https:\u002F\u002Fx.com\u002Ftwtayaan\u002Fstatus\u002F2051550460142878742) on X, May 5, 2026.\n\n1. [kienletech's post](https:\u002F\u002Fwww.threads.com\u002F@kienletech\u002Fpost\u002FDXiSzuCE4Ee) on Threads, April 25, 2026.\n\n1. [Frederyk Leonam's post](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Ffrederyk-leonam_kubernetes-devops-cloudnative-activity-7447668260675735552-1X9o\u002F) on LinkedIn, April 9, 2026.\n\n1. [Tom Dörr's post](https:\u002F\u002Fx.com\u002Ftom_doerr\u002Fstatus\u002F20397263158975120064) on X, April 2, 2026.\n\n1. [Kube Architect's post](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fkubernetes-architect_kubediagrams-is-a-tool-that-automatically-activity-7440788253752078336-wSLL) on LinkedIn, March 20, 2026.\n\n1. [Kube Architect's post](https:\u002F\u002Fx.com\u002FK8sArchitect\u002Fstatus\u002F2035021302327582744) on X, March 20, 2026.\n\n1. [Binayak Chatterjee's post](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fbinayak-chatterjee_kubernetes-devops-platformengineering-activity-7435645106331971585--3pt\u002F) on LinkedIn, March 7, 2026.\n\n1. [KubeDiagrams 0.7.0 is out!](https:\u002F\u002Fwww.reddit.com\u002Fr\u002Fkubernetes\u002Fcomments\u002F1r823fo\u002Fkubediagrams_070_is_out\u002F), Reddit, February 18, 2026.\n\n1. [Kube Architect's post](https:\u002F\u002Fx.com\u002FK8sArchitect\u002Fstatus\u002F2007167771566608550) on X, January 2, 2026.\n\n1. [01Cloud's post](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fzero-one-cloud_kubediagrams-automatically-generate-stunning-activity-7409579703847710720-ht68\u002F), LinkedIn, December 24, 2025.\n\n1. [KubeDiagrams](https:\u002F\u002Fwww.reddit.com\u002Fr\u002Fkubernetes\u002Fcomments\u002F1pqkffu\u002Fkubediagrams\u002F), Reddit, December 19, 2025.\n\n1. [James Whyley's post](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fjames-whyley-0941aa31_online-kubediagrams-web-server-activity-7402319330182479872-uK61\u002F) on LinkedIn, December 5, 2025.\n\n1. [Kube Architect's post](https:\u002F\u002Fx.com\u002FK8sArchitect\u002Fstatus\u002F1995932488393171427) on X, December 2, 2025.\n\n1. [Kube Architect's post](https:\u002F\u002Fx.com\u002FK8sArchitect\u002Fstatus\u002F1986813654801485978) on X, November 7, 2025.\n\n1. [OSO's post](https:\u002F\u002Fx.com\u002Fosodevops\u002Fstatus\u002F1985564412720091564) on X, November 4, 2025.\n\n1. [Philippe Merle's post](https:\u002F\u002Fwww.linkedin.com\u002Fanalytics\u002Fpost-summary\u002Furn:li:activity:7387345855089070080\u002F) on LinkedIn, October 24, 2025.\n\n1. [Online KubeDiagrams Service](https:\u002F\u002Fwww.reddit.com\u002Fr\u002Fkubernetes\u002Fcomments\u002F1o4lk73\u002Fonline_kubediagrams_service\u002F), Reddit, October 12, 2025.\n\n1. [Kube Architect's post](https:\u002F\u002Fx.com\u002FK8sArchitect\u002Fstatus\u002F1975578370457964926) on X, October 7, 2025.\n\n1. [Kube Architect's post](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fkubernetes-architect_kubediagrams-reads-kubernetes-manifests-activity-7381344073300979712-pKZa\u002F) on LinkedIn, October 7, 2025.\n\n1. [Kubernetes What's New's post](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fk8snews_heres-your-quick-roundup-of-the-top-kubernetes-activity-7375559648743043072-1e89\u002F) on LinkedIn, September 22, 2025.\n\n1. [KubeDiagrams 0.6.0 is out!](https:\u002F\u002Fwww.reddit.com\u002Fr\u002Fkubernetes\u002Fcomments\u002F1n86imp\u002Fkubediagrams_060_is_out\u002F), Reddit, September 4, 2025.\n\n1. [Evgeny Anikiev's post](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fanikievev_github-philippemerlekubediagrams-generate-activity-7368221605052694528-pB7Y\u002F?utm_source=share&utm_medium=member_desktop&rcm=ACoAAAAemi4BApQnQWOvw041B_9Tbc_ljWmw1-E) on LinkedIn, September 2, 2025.\n\n1. [Naveen Dornala's post](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fdornalanaveen_github-philippemerlekubediagrams-generate-activity-7353661169821249536-_E6Z\u002F) on LinkedIn, August, 2025.\n\n1. [Kube Architect's post](https:\u002F\u002Fx.com\u002FK8sArchitect\u002Fstatus\u002F1956434726450860497) on X, August 15, 2025.\n\n1. [Kubernetes Insights Report - July 2025](https:\u002F\u002Fkube.today\u002Fkubernetes-insights-july-2025), Kube Today, August 12, 2025.\n\n1. [KubeDiagrams 0.5.0 is out!](https:\u002F\u002Fwww.reddit.com\u002Fr\u002Fkubernetes\u002Fcomments\u002F1mj1lo8\u002Fkubediagrams_050_is_out\u002F), Reddit, August 7, 2025. Announce also available [here](https:\u002F\u002Fwww.reddit.com\u002Fr\u002Fdevops\u002Fcomments\u002F1mj1t4p\u002Fkubediagrams_050_is_out\u002F).\n\n1. [Shakur Shaik's post](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fshakur-shaik_use-case-improving-onboarding-for-new-devops-activity-7358598126896582657-5eui\u002F) on LinkedIn, August 6, 2025.\n\n1. [Shakur Shaik's post](https:\u002F\u002Fwww.linkedin.com\u002Ffeed\u002Fupdate\u002Furn:li:activity:7358597890732187648\u002F) on LinkedIn, August 6, 2025.\n\n1. [Python Hub's post](https:\u002F\u002Fx.com\u002FPythonHub\u002Fstatus\u002F1948688533952082043) on X, July 25, 2025.\n\n1. [Alain AIROM's post](https:\u002F\u002Fwww.linkedin.com\u002Ffeed\u002Fupdate\u002Furn:li:activity:7352351521562337280\u002F) on LinkedIn, July 19, 2025.\n\n1. [Christian Josef Aquino's post](https:\u002F\u002Fwww.linkedin.com\u002Ffeed\u002Fupdate\u002Furn:li:activity:7351589120986533889\u002F) on LinkedIn, July 17, 2025.\n\n1. [Daniele Polencic's post](https:\u002F\u002Fx.com\u002Fdanielepolencic\u002Fstatus\u002F1945447333694419110) on X, July 16, 2025.\n\n1. [Learn Kubernetes Weekly Issue 140](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fdanielepolencic_learn-kubernetes-weekly-140-hot-off-the-press-activity-7351213039926349824---gt\u002F), LinkedIn, July 16, 2025.\n\n1. [Python Trending's post](https:\u002F\u002Fx.com\u002Fpythontrending\u002Fstatus\u002F1945434488441356341) on X, July 16, 2025.\n\n1. [Kube Architect's post](https:\u002F\u002Fx.com\u002FK8sArchitect\u002Fstatus\u002F1945199450273501291) on X, July 15, 2025.\n\n1. [KubeDiagrams](https:\u002F\u002Fwww.reddit.com\u002Fr\u002Fdevops\u002Fcomments\u002F1lzvsb7\u002Fkubediagrams\u002F), Reddit, July 14, 2025.\n\n1. [New Open-Source Tool Spotlight](https:\u002F\u002Fwww.instagram.com\u002Fp\u002FDLk3_trO5wt\u002F), Instagram, July 2, 2025.\n\n1. [Kube Architect's post](https:\u002F\u002Fx.com\u002FK8sArchitect\u002Fstatus\u002F1939401241953497488) on X, June 29, 2025.\n\n1. [Suman Chakraborty's post](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fschakraborty007_kubernetes-developers-devops-activity-7342764039833296897-0ICb\u002F) on LinkedIn, June 23, 2025.\n\n1. [KubeDiagrams 0.4.0 is out!](https:\u002F\u002Fwww.reddit.com\u002Fr\u002Fkubernetes\u002Fcomments\u002F1lfzyly\u002Fkubediagrams_040_is_out\u002F), Reddit, June 20, 2025.\n\n1. [Syed Mansoor A's post](https:\u002F\u002Fwww.linkedin.com\u002Ffeed\u002Fupdate\u002Furn:li:activity:7340773828572172288\u002F) on LinkedIn, June 19, 2025.\n\n1. [Out Now: Kubernetes Content Performance Analysis Report, May 2025\n](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Famitjayshah_out-now-kubernetes-content-performance-activity-7340339887239274496-8Td3\u002F), LinkedIn, June 17, 2025. [Full Report](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1Et8ZnCttdvjhj8cHOwcqVJFZ2iLzIMu_\u002Fview).\n\n1. [KubeDiagrams Interactive Viewer](https:\u002F\u002Fwww.reddit.com\u002Fr\u002Fkubernetes\u002Fcomments\u002F1lbba70\u002Fkubediagrams_interactive_viewer\u002F) on Reddit, June 14, 2025.\n\n1. [Mahyar Mirrashed's post](https:\u002F\u002Fwww.linkedin.com\u002Ffeed\u002Fupdate\u002Furn:li:activity:7339156177529774080\u002F) on LinkedIn, June 13, 2025.\n\n1. [Christophe Gourdin's post](https:\u002F\u002Fwww.linkedin.com\u002Ffeed\u002Fupdate\u002Furn:li:activity:7338139783220617216\u002F) on LinkedIn, June 10, 2025.\n\n1. [Preview: Kubernetes Content Performance Analysis Report for May 2025](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Famitjayshah_preview-kubernetes-content-performance-activity-7337803162893885440-Z_Ws\u002F), LinkedIn, June 9, 2025. [Full Report Preview](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1Et8ZnCttdvjhj8cHOwcqVJFZ2iLzIMu_\u002Fview).\n\n1. [Mathieu Acher's post](https:\u002F\u002Fx.com\u002Facherm\u002Fstatus\u002F1932032555424928036) on X, June 9, 2025.\n\n1. [Philippe Merle's post](https:\u002F\u002Fwww.linkedin.com\u002Ffeed\u002Fupdate\u002Furn:li:activity:7337365803010338817\u002F) on LinkedIn, June 9, 2025.\n\n1. [KubeDiagrams moved from GPL-3.0 to Apache 2.0 License](https:\u002F\u002Fwww.reddit.com\u002Fr\u002Fkubernetes\u002Fcomments\u002F1l4djek\u002Fkubediagrams_moved_from_gpl30_to_apache_20_license\u002F) on Reddit, June 6, 2025.\n\n1. [Jimmy Song's post](https:\u002F\u002Fx.com\u002Fjimmysongio\u002Fstatus\u002F1930073443866722570) on X, June 4, 2025.\n\n1. [Sebastian Sejzer’s post](https:\u002F\u002Fwww.facebook.com\u002Fgroups\u002F860938820648880\u002Fposts\u002F9900239206718751\u002F) on Facebook, May 30, 2025.\n\n1. [Donald Lutz’s post](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fdonald-lutz-5a9b0b2_github-philippemerlekubediagrams-generate-activity-7334206152311791617-DONS\u002F) on LinkedIn, May 30, 2025.\n\n1. [Dor Ben Dov’s post](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fdorbendov_visualizing-cloud-native-applications-with-activity-7334205615742873600-RUzT\u002F) on LinkedIn, May 30, 2025.\n\n1. [박상길’s post](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002F상길-박-b6ab145a_github-philippemerlekubediagrams-generate-activity-7334020967683264513-oBMC\u002F) on LinkedIn, May 30, 2025.\n\n1. [Visualizing Cloud-native Applications with KubeDiagrams](https:\u002F\u002Fwww.reddit.com\u002Fr\u002Fkubernetes\u002Fcomments\u002F1kyvadz\u002Fvisualizing_cloudnative_applications_with\u002F) on Reddit, May 30, 2025.\n\n1. [Kubernetes Architect's post](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fkubernetes-architect_kubediagrams-is-a-tool-that-automatically-activity-7333935435754127381-LSV1\u002F) on LinkedIn, May 29, 2025.\n\n1. [Kubernetes Architect's post](https:\u002F\u002Fx.com\u002FK8sArchitect\u002Fstatus\u002F1928169735843180597) on X, May 29, 2025.\n\n1. [KubeDiagrams](https:\u002F\u002Fapp.daily.dev\u002Fposts\u002Fkubediagrams-e35zcloui) on Daily.dev, May 8, 2025.\n\n1. [KubeDiagrams 0.3.0 is out!](https:\u002F\u002Fwww.reddit.com\u002Fr\u002Fkubernetes\u002Fcomments\u002F1kapc3i\u002Fkubediagrams_030_is_out\u002F) on Reddit, April 29, 2025.\n\n1. [JReuben1's post](https:\u002F\u002Fx.com\u002Fjreuben1\u002Fstatus\u002F1913635086047596736) on X, April 19, 2025.\n\n1. [Custom declarative diagrams with KubeDiagrams](https:\u002F\u002Fwww.reddit.com\u002Fr\u002Fkubernetes\u002Fcomments\u002F1k184xj\u002Fcustom_declarative_diagrams_with_kubediagrams\u002F) on Reddit, April 17, 2025.\n\n1. [DevOps Radar](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fdevops-radar_kubernetes-devops-","KubeDiagrams 是一个用于从 Kubernetes 清单文件、kustomization 文件、Helm charts、helmfile 描述符以及实际集群状态生成 Kubernetes 架构图的工具。其核心功能包括支持大多数 Kubernetes 内置资源和自定义资源，能够自定义资源聚类，并展示任意 Kubernetes 资源间的关系。此外，它还提供了声明式自定义图表选项、交互式的图表查看器以及一个现代化的Web应用程序界面。这些特性使得 KubeDiagrams 在需要可视化 Kubernetes 集群架构以进行设计审查、文档编写或故障排除等场景下特别有用。",2,"2026-06-11 03:43:29","high_star"]