KubeDiagrams


NameKubeDiagrams JSON
Version 0.1.0 PyPI version JSON
download
home_pagehttps://github.com/philippemerle/KubeDiagrams
SummaryGenerate Kubernetes architecture diagrams from Kubernetes manifest files, kustomization files, Helm charts, and actual cluster state
upload_time2025-02-09 12:10:51
maintainerPhilippe Merle
docs_urlNone
authorPhilippe Merle
requires_python>=3.9
licenseNone
keywords kubernetes architecture diagrams
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # KubeDiagrams

[![license](https://img.shields.io/github/license/philippemerle/KubeDiagrams)](https://github.com/philippemerle/KubeDiagrams/blob/main/LICENSE)
[![pypi version](https://badge.fury.io/py/KubeDiagrams.svg)](https://badge.fury.io/py/KubeDiagrams)
[![PyPI Downloads](https://static.pepy.tech/badge/KubeDiagrams)](https://pepy.tech/projects/KubeDiagrams)
![python version](https://img.shields.io/badge/python-%3E%3D%203.9-blue?logo=python)
![contributors](https://img.shields.io/github/contributors/philippemerle/KubeDiagrams)

Generate Kubernetes architecture diagrams from Kubernetes manifest files, kustomization files, Helm charts, and actual cluster state.

There are several tools to generate Kubernetes architecture diagrams (see **[here](https://github.com/philippemerle/Awesome-Kubernetes-Architecture-Diagrams)**).
The main originality of **KubeDiagrams** is its **[configurability](https://github.com/philippemerle/KubeDiagrams/blob/main/bin/kube-diagrams.yaml)** allowing for instance to deal with custom Kubernetes resources.

## Examples

Architecture diagram for **[official Kubernetes WordPress tutorial](https://kubernetes.io/docs/tutorials/stateful-application/mysql-wordpress-persistent-volume/)** manifests:
![WordPress Manifests](https://raw.githubusercontent.com/philippemerle/KubeDiagrams/refs/heads/main/examples/wordpress/wordpress.png)

Architecture diagram for **[official Kubernetes ZooKeeper tutorial](https://kubernetes.io/docs/tutorials/stateful-application/zookeeper/)** manifests:
![ZooKeeper Manifest](https://raw.githubusercontent.com/philippemerle/KubeDiagrams/refs/heads/main/examples/zookeeper/zookeeper.png)

Architecture diagram of a deployed **[Cassandra](https://kubernetes.io/docs/tutorials/stateful-application/cassandra/)** instance:
![Deployed Cassandra Instance](https://raw.githubusercontent.com/philippemerle/KubeDiagrams/refs/heads/main/examples/cassandra/default.png)

Architecture diagram for **[Train Ticket:A Benchmark Microservice System](https://github.com/FudanSELab/train-ticket/)**:
![train-ticket.png](https://raw.githubusercontent.com/philippemerle/KubeDiagrams/refs/heads/main/examples/train-ticket/train-ticket.png)

Architecture diagram of the Minikube Ingress Addon:
![Minikube Ingress Addon](https://raw.githubusercontent.com/philippemerle/KubeDiagrams/refs/heads/main/examples/minikube/minikube-ingress-nginx.png)

Architecture diagram for the **[Kube Prometheus Stack](https://github.com/prometheus-community/helm-charts/tree/main/charts/kube-prometheus-stack)** chart:
![kube-prometheus-stack.png](https://raw.githubusercontent.com/philippemerle/KubeDiagrams/refs/heads/main/examples/kube-prometheus-stack/kube-prometheus-stack.png)

Architecture diagram for **[free5gc-k8s](https://github.com/niloysh/free5gc-k8s)** manifests:
![free5gc-k8s-diagram.png](https://raw.githubusercontent.com/philippemerle/KubeDiagrams/refs/heads/main/examples/free5gc-k8s/free5gc-k8s-diagram.png)

Architecture diagram for **[open5gs-k8s](https://github.com/niloysh/open5gs-k8s)** manifests:
![open5gs-k8s-diagram.png](https://raw.githubusercontent.com/philippemerle/KubeDiagrams/refs/heads/main/examples/open5gs-k8s/open5gs-k8s-diagram.png)

Architecture diagram for the **[Towards5GS-helm](https://github.com/Orange-OpenSource/towards5gs-helm)** chart:
![towards5gs_free5gc.png](https://raw.githubusercontent.com/philippemerle/KubeDiagrams/refs/heads/main/examples/towards5gs-helm/towards5gs_free5gc.png)

Architecture diagram for a deployed **CronJob** instance:
![cronjob-deployed.png](https://raw.githubusercontent.com/philippemerle/KubeDiagrams/refs/heads/main/examples/miscellaneous/cronjob-deployed.png)

Architecture diagram for **NetworkPolicy** resources: ![network_policies.png](https://raw.githubusercontent.com/philippemerle/KubeDiagrams/refs/heads/main/examples/miscellaneous/network_policies.png)

Many other architecture diagrams are available into [examples/](https://github.com/philippemerle/KubeDiagrams/blob/main/examples/).

All the examples are
1. [official Kubernetes WordPress tutorial](https://github.com/philippemerle/KubeDiagrams/blob/main/examples/wordpress/)
1. [official Kubernetes ZooKeeper tutorial](https://github.com/philippemerle/KubeDiagrams/blob/main/examples/zookeeper/)
1. [official Kubernetes Cassandra tutorial](https://github.com/philippemerle/KubeDiagrams/blob/main/examples/cassandra/)
1. [Train Ticket](https://github.com/philippemerle/KubeDiagrams/blob/main/examples/train-ticket/)
1. [minikube architecture diagrams](https://github.com/philippemerle/KubeDiagrams/blob/main/examples/minikube/)
1. [k0s architecture diagrams](https://github.com/philippemerle/KubeDiagrams/blob/main/examples/k0s/)
1. [Kube Prometheus Stack](https://github.com/philippemerle/KubeDiagrams/blob/main/examples/kube-prometheus-stack/)
1. [free5gc-k8s](https://github.com/philippemerle/KubeDiagrams/blob/main/examples/free5gc-k8s/)
1. [open5gs-k8s](https://github.com/philippemerle/KubeDiagrams/blob/main/examples/open5gs-k8s/)
1. [Towards5GS-helm](https://github.com/philippemerle/KubeDiagrams/blob/main/examples/towards5gs-helm/)
1. [Miscellaneous examples](https://github.com/philippemerle/KubeDiagrams/blob/main/examples/miscellaneous/)
1. [Some Helm charts](https://github.com/philippemerle/KubeDiagrams/blob/main/examples/helm-charts/)

## Prerequisites

Following software must be installed:
* [Python](https://www.python.org) 3.9 or higher
* `dot` command ([Graphviz](https://www.graphviz.org/))

## Getting Started

Following command installs **KubeDiagrams** and all its Python dependencies, i.e., [PyYAML](https://pyyaml.org) and [Diagrams](https://diagrams.mingrammer.com/).

```ssh
# using pip (pip3)
$ pip install KubeDiagrams
```

## Usage

```sh
$ kube-diagrams -h
usage: kube-diagrams [-h] [-o OUTPUT] [-f FORMAT] [-c CONFIG] [-v] [--without-namespace] filename [filename ...]

Generate Kubernetes architecture diagrams from Kubernetes manifest files

positional arguments:
  filename              the Kubernetes manifest filename to process

options:
  -h, --help            show this help message and exit
  -o OUTPUT, --output OUTPUT
                        output diagram filename
  -f FORMAT, --format FORMAT
                        output format, allowed formats are png (default), jpg, svg, pdf, and dot
  -c CONFIG, --config CONFIG
                        custom kube-diagrams configuration file
  -v, --verbose         verbosity, set to false by default
  --without-namespace   disable namespace cluster generation
```

## Features

### Kubernetes resources

Supported `kind`/`apiVersion` resource types are 42 ones:
* APIService/apiregistration.k8s.io/v1
* ClusterRole/rbac.authorization.k8s.io/v1
* ClusterRoleBinding/rbac.authorization.k8s.io/v1
* ConfigMap/v1
* CronJob/batch/v1
* CustomResourceDefinition/apiextensions.k8s.io/v1
* CSIDriver/storage.k8s.io/v1
* DaemonSet/apps/v1
* Deployment/apps/v1
* Endpoints/v1
* EndpointSlice/discovery.k8s.io/v1
* Group/rbac.authorization.k8s.io/v1
* HorizontalPodAutoscaler/autoscaling/v1
* HorizontalPodAutoscaler/autoscaling/v2
* Ingress/networking.k8s.io/v1
* IngressClass/networking.k8s.io/v1
* Job/batch/v1
* Lease/coordination.k8s.io/v1
* LimitRange/v1
* MutatingWebhookConfiguration/admissionregistration.k8s.io/v1
* Namespace/v1
* NetworkAttachmentDefinition/k8s.cni.cncf.io/v1
* NetworkPolicy/networking.k8s.io/v1
* Node/v1
* PersistentVolume/v1
* PersistentVolumeClaim/v1
* PriorityClass/scheduling.k8s.io/v1
* Pod/v1
* PodDisruptionBudget/policy/v1
* PodSecurityPolicy/policy/v1beta1
* ReplicaSet/apps/v1
* ResourceQuota/v1
* Role/rbac.authorization.k8s.io/v1
* RoleBinding/rbac.authorization.k8s.io/v1
* Secret/v1
* Service/v1
* ServiceAccount/v1
* StatefulSet/apps/v1
* StorageClass/storage.k8s.io/v1
* User/rbac.authorization.k8s.io/v1
* ValidatingWebhookConfiguration/admissionregistration.k8s.io/v1
* VolumeAttachment/storage.k8s.io/v1

**Note**: The mapping between these supported Kubernetes resources and architecture diagrams is defined into [bin/kube-diagrams.yml](https://github.com/philippemerle/KubeDiagrams/blob/main/bin/kube-diagrams.yaml#L65).

**Note**: The mapping for any Kubernetes custom resources can be also defined into **KubeDiagrams** configuration files as illustrated in [examples/k0s/KubeDiagrams.yml](https://github.com/philippemerle/KubeDiagrams/blob/main/examples/k0s/KubeDiagrams.yml#L10) and [examples/kube-prometheus-stack/KubeDiagrams.yml](https://github.com/philippemerle/KubeDiagrams/blob/main/examples/kube-prometheus-stack/KubeDiagrams.yaml#L3).

Currently, unsupported `kind`/`apiGroup` resource types are 20 ones:
* Binding/
* ComponentStatus/
* Event/
* PodTemplate/
* ReplicationController/
* ControllerRevision/apps
* TokenReview/authentication.k8s.io
* LocalSubjectAccessReview/authorization.k8s.io
* SelfSubjectAccessReview/authorization.k8s.io
* SelfSubjectRulesReview/authorization.k8s.io
* SubjectAccessReview/authorization.k8s.io
* CertificateSigningRequest/certificates.k8s.io
* Event/events.k8s.io
* FlowSchema/flowcontrol.apiserver.k8s.io
* PriorityLevelConfiguration/flowcontrol.apiserver.k8s.io
* NodeMetrics/metrics.k8s.io
* PodMetrics/metrics.k8s.io
* RuntimeClass/node.k8s.io
* CSINode/storage.k8s.io
* CSIStorageCapacity/storage.k8s.io

### Kubernetes resources clustering

With **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 as defined in the [bin/kube-diagrams.yml](https://github.com/philippemerle/KubeDiagrams/blob/main/bin/kube-diagrams.yaml#L37) file (see the `clusters` list).

| Label | Cluster Title |
| :--------: | :-------: |
| `app.kubernetes.io/instance` | K8s Instance |
| `release` | Release |
| `helm.sh/chart` | Helm Chart |
| `chart` | Chart |
| `app.kubernetes.io/name` | K8s Application |
| `app` | Application |
| `app.kubernetes.io/component` | K8s Component |
| `service` | Microservice |
| `tier` | Tier |

New mappings can be easily defined in custom configuration files (see [examples/minikube/KubeDiagrams.yml](https://github.com/philippemerle/KubeDiagrams/blob/main/examples/minikube/KubeDiagrams.yml#L2), [examples/k0s/KubeDiagrams.yml](https://github.com/philippemerle/KubeDiagrams/blob/main/examples/k0s/KubeDiagrams.yml#L5), [examples/free5gc-k8s/KubeDiagrams.yml](https://github.com/philippemerle/KubeDiagrams/blob/main/examples/free5gc-k8s/KubeDiagrams.yml#L2),  [examples/open5gs-k8s/KubeDiagrams.yml](https://github.com/philippemerle/KubeDiagrams/blob/main/examples/open5gs-k8s/KubeDiagrams.yml#L2), and [examples/towards5gs-helm/KubeDiagrams.yml](https://github.com/philippemerle/KubeDiagrams/blob/main/examples/towards5gs-helm/KubeDiagrams.yml#L2)) and provided to **KubeDiagrams** via the `--config` command-line option.

## What do they say about it?

Posts and blogs about **KubeDiagrams**:
* [Facebook Kubernetes Users Group](https://www.facebook.com/groups/kubernetes.users/permalink/2818586068320504)
* [Visualising SQL Server in Kubernetes](https://dbafromthecold.com/2025/02/06/visualising-sql-server-in-kubernetes/)

## License

This project is licensed under the GPL-3.0 license - see the [LICENSE](https://github.com/philippemerle/KubeDiagrams/blob/main/LICENSE) file for details.

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/philippemerle/KubeDiagrams",
    "name": "KubeDiagrams",
    "maintainer": "Philippe Merle",
    "docs_url": null,
    "requires_python": ">=3.9",
    "maintainer_email": "philippe.merle@inria.fr",
    "keywords": "kubernetes architecture diagrams",
    "author": "Philippe Merle",
    "author_email": "philippe.merle@inria.fr",
    "download_url": "https://files.pythonhosted.org/packages/d5/56/458ea585b97cfac512965e696500f820c3277ee07fd5a57afb4906ec61d5/kubediagrams-0.1.0.tar.gz",
    "platform": null,
    "description": "# KubeDiagrams\n\n[![license](https://img.shields.io/github/license/philippemerle/KubeDiagrams)](https://github.com/philippemerle/KubeDiagrams/blob/main/LICENSE)\n[![pypi version](https://badge.fury.io/py/KubeDiagrams.svg)](https://badge.fury.io/py/KubeDiagrams)\n[![PyPI Downloads](https://static.pepy.tech/badge/KubeDiagrams)](https://pepy.tech/projects/KubeDiagrams)\n![python version](https://img.shields.io/badge/python-%3E%3D%203.9-blue?logo=python)\n![contributors](https://img.shields.io/github/contributors/philippemerle/KubeDiagrams)\n\nGenerate Kubernetes architecture diagrams from Kubernetes manifest files, kustomization files, Helm charts, and actual cluster state.\n\nThere are several tools to generate Kubernetes architecture diagrams (see **[here](https://github.com/philippemerle/Awesome-Kubernetes-Architecture-Diagrams)**).\nThe main originality of **KubeDiagrams** is its **[configurability](https://github.com/philippemerle/KubeDiagrams/blob/main/bin/kube-diagrams.yaml)** allowing for instance to deal with custom Kubernetes resources.\n\n## Examples\n\nArchitecture diagram for **[official Kubernetes WordPress tutorial](https://kubernetes.io/docs/tutorials/stateful-application/mysql-wordpress-persistent-volume/)** manifests:\n![WordPress Manifests](https://raw.githubusercontent.com/philippemerle/KubeDiagrams/refs/heads/main/examples/wordpress/wordpress.png)\n\nArchitecture diagram for **[official Kubernetes ZooKeeper tutorial](https://kubernetes.io/docs/tutorials/stateful-application/zookeeper/)** manifests:\n![ZooKeeper Manifest](https://raw.githubusercontent.com/philippemerle/KubeDiagrams/refs/heads/main/examples/zookeeper/zookeeper.png)\n\nArchitecture diagram of a deployed **[Cassandra](https://kubernetes.io/docs/tutorials/stateful-application/cassandra/)** instance:\n![Deployed Cassandra Instance](https://raw.githubusercontent.com/philippemerle/KubeDiagrams/refs/heads/main/examples/cassandra/default.png)\n\nArchitecture diagram for **[Train Ticket\uff1aA Benchmark Microservice System](https://github.com/FudanSELab/train-ticket/)**:\n![train-ticket.png](https://raw.githubusercontent.com/philippemerle/KubeDiagrams/refs/heads/main/examples/train-ticket/train-ticket.png)\n\nArchitecture diagram of the Minikube Ingress Addon:\n![Minikube Ingress Addon](https://raw.githubusercontent.com/philippemerle/KubeDiagrams/refs/heads/main/examples/minikube/minikube-ingress-nginx.png)\n\nArchitecture diagram for the **[Kube Prometheus Stack](https://github.com/prometheus-community/helm-charts/tree/main/charts/kube-prometheus-stack)** chart:\n![kube-prometheus-stack.png](https://raw.githubusercontent.com/philippemerle/KubeDiagrams/refs/heads/main/examples/kube-prometheus-stack/kube-prometheus-stack.png)\n\nArchitecture diagram for **[free5gc-k8s](https://github.com/niloysh/free5gc-k8s)** manifests:\n![free5gc-k8s-diagram.png](https://raw.githubusercontent.com/philippemerle/KubeDiagrams/refs/heads/main/examples/free5gc-k8s/free5gc-k8s-diagram.png)\n\nArchitecture diagram for **[open5gs-k8s](https://github.com/niloysh/open5gs-k8s)** manifests:\n![open5gs-k8s-diagram.png](https://raw.githubusercontent.com/philippemerle/KubeDiagrams/refs/heads/main/examples/open5gs-k8s/open5gs-k8s-diagram.png)\n\nArchitecture diagram for the **[Towards5GS-helm](https://github.com/Orange-OpenSource/towards5gs-helm)** chart:\n![towards5gs_free5gc.png](https://raw.githubusercontent.com/philippemerle/KubeDiagrams/refs/heads/main/examples/towards5gs-helm/towards5gs_free5gc.png)\n\nArchitecture diagram for a deployed **CronJob** instance:\n![cronjob-deployed.png](https://raw.githubusercontent.com/philippemerle/KubeDiagrams/refs/heads/main/examples/miscellaneous/cronjob-deployed.png)\n\nArchitecture diagram for **NetworkPolicy** resources: ![network_policies.png](https://raw.githubusercontent.com/philippemerle/KubeDiagrams/refs/heads/main/examples/miscellaneous/network_policies.png)\n\nMany other architecture diagrams are available into [examples/](https://github.com/philippemerle/KubeDiagrams/blob/main/examples/).\n\nAll the examples are\n1. [official Kubernetes WordPress tutorial](https://github.com/philippemerle/KubeDiagrams/blob/main/examples/wordpress/)\n1. [official Kubernetes ZooKeeper tutorial](https://github.com/philippemerle/KubeDiagrams/blob/main/examples/zookeeper/)\n1. [official Kubernetes Cassandra tutorial](https://github.com/philippemerle/KubeDiagrams/blob/main/examples/cassandra/)\n1. [Train Ticket](https://github.com/philippemerle/KubeDiagrams/blob/main/examples/train-ticket/)\n1. [minikube architecture diagrams](https://github.com/philippemerle/KubeDiagrams/blob/main/examples/minikube/)\n1. [k0s architecture diagrams](https://github.com/philippemerle/KubeDiagrams/blob/main/examples/k0s/)\n1. [Kube Prometheus Stack](https://github.com/philippemerle/KubeDiagrams/blob/main/examples/kube-prometheus-stack/)\n1. [free5gc-k8s](https://github.com/philippemerle/KubeDiagrams/blob/main/examples/free5gc-k8s/)\n1. [open5gs-k8s](https://github.com/philippemerle/KubeDiagrams/blob/main/examples/open5gs-k8s/)\n1. [Towards5GS-helm](https://github.com/philippemerle/KubeDiagrams/blob/main/examples/towards5gs-helm/)\n1. [Miscellaneous examples](https://github.com/philippemerle/KubeDiagrams/blob/main/examples/miscellaneous/)\n1. [Some Helm charts](https://github.com/philippemerle/KubeDiagrams/blob/main/examples/helm-charts/)\n\n## Prerequisites\n\nFollowing software must be installed:\n* [Python](https://www.python.org) 3.9 or higher\n* `dot` command ([Graphviz](https://www.graphviz.org/))\n\n## Getting Started\n\nFollowing command installs **KubeDiagrams** and all its Python dependencies, i.e., [PyYAML](https://pyyaml.org) and [Diagrams](https://diagrams.mingrammer.com/).\n\n```ssh\n# using pip (pip3)\n$ pip install KubeDiagrams\n```\n\n## Usage\n\n```sh\n$ kube-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\n                        output diagram filename\n  -f FORMAT, --format FORMAT\n                        output format, allowed formats are png (default), jpg, svg, pdf, and dot\n  -c CONFIG, --config CONFIG\n                        custom kube-diagrams configuration file\n  -v, --verbose         verbosity, set to false by default\n  --without-namespace   disable namespace cluster generation\n```\n\n## Features\n\n### Kubernetes resources\n\nSupported `kind`/`apiVersion` resource types are 42 ones:\n* APIService/apiregistration.k8s.io/v1\n* ClusterRole/rbac.authorization.k8s.io/v1\n* ClusterRoleBinding/rbac.authorization.k8s.io/v1\n* ConfigMap/v1\n* CronJob/batch/v1\n* CustomResourceDefinition/apiextensions.k8s.io/v1\n* CSIDriver/storage.k8s.io/v1\n* DaemonSet/apps/v1\n* Deployment/apps/v1\n* Endpoints/v1\n* EndpointSlice/discovery.k8s.io/v1\n* Group/rbac.authorization.k8s.io/v1\n* HorizontalPodAutoscaler/autoscaling/v1\n* HorizontalPodAutoscaler/autoscaling/v2\n* Ingress/networking.k8s.io/v1\n* IngressClass/networking.k8s.io/v1\n* Job/batch/v1\n* Lease/coordination.k8s.io/v1\n* LimitRange/v1\n* MutatingWebhookConfiguration/admissionregistration.k8s.io/v1\n* Namespace/v1\n* NetworkAttachmentDefinition/k8s.cni.cncf.io/v1\n* NetworkPolicy/networking.k8s.io/v1\n* Node/v1\n* PersistentVolume/v1\n* PersistentVolumeClaim/v1\n* PriorityClass/scheduling.k8s.io/v1\n* Pod/v1\n* PodDisruptionBudget/policy/v1\n* PodSecurityPolicy/policy/v1beta1\n* ReplicaSet/apps/v1\n* ResourceQuota/v1\n* Role/rbac.authorization.k8s.io/v1\n* RoleBinding/rbac.authorization.k8s.io/v1\n* Secret/v1\n* Service/v1\n* ServiceAccount/v1\n* StatefulSet/apps/v1\n* StorageClass/storage.k8s.io/v1\n* User/rbac.authorization.k8s.io/v1\n* ValidatingWebhookConfiguration/admissionregistration.k8s.io/v1\n* VolumeAttachment/storage.k8s.io/v1\n\n**Note**: The mapping between these supported Kubernetes resources and architecture diagrams is defined into [bin/kube-diagrams.yml](https://github.com/philippemerle/KubeDiagrams/blob/main/bin/kube-diagrams.yaml#L65).\n\n**Note**: The mapping for any Kubernetes custom resources can be also defined into **KubeDiagrams** configuration files as illustrated in [examples/k0s/KubeDiagrams.yml](https://github.com/philippemerle/KubeDiagrams/blob/main/examples/k0s/KubeDiagrams.yml#L10) and [examples/kube-prometheus-stack/KubeDiagrams.yml](https://github.com/philippemerle/KubeDiagrams/blob/main/examples/kube-prometheus-stack/KubeDiagrams.yaml#L3).\n\nCurrently, unsupported `kind`/`apiGroup` resource types are 20 ones:\n* Binding/\n* ComponentStatus/\n* Event/\n* PodTemplate/\n* ReplicationController/\n* ControllerRevision/apps\n* TokenReview/authentication.k8s.io\n* LocalSubjectAccessReview/authorization.k8s.io\n* SelfSubjectAccessReview/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* RuntimeClass/node.k8s.io\n* CSINode/storage.k8s.io\n* CSIStorageCapacity/storage.k8s.io\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 as defined in the [bin/kube-diagrams.yml](https://github.com/philippemerle/KubeDiagrams/blob/main/bin/kube-diagrams.yaml#L37) file (see the `clusters` list).\n\n| Label | Cluster Title |\n| :--------: | :-------: |\n| `app.kubernetes.io/instance` | K8s Instance |\n| `release` | Release |\n| `helm.sh/chart` | Helm Chart |\n| `chart` | Chart |\n| `app.kubernetes.io/name` | K8s Application |\n| `app` | Application |\n| `app.kubernetes.io/component` | K8s Component |\n| `service` | Microservice |\n| `tier` | Tier |\n\nNew mappings can be easily defined in custom configuration files (see [examples/minikube/KubeDiagrams.yml](https://github.com/philippemerle/KubeDiagrams/blob/main/examples/minikube/KubeDiagrams.yml#L2), [examples/k0s/KubeDiagrams.yml](https://github.com/philippemerle/KubeDiagrams/blob/main/examples/k0s/KubeDiagrams.yml#L5), [examples/free5gc-k8s/KubeDiagrams.yml](https://github.com/philippemerle/KubeDiagrams/blob/main/examples/free5gc-k8s/KubeDiagrams.yml#L2),  [examples/open5gs-k8s/KubeDiagrams.yml](https://github.com/philippemerle/KubeDiagrams/blob/main/examples/open5gs-k8s/KubeDiagrams.yml#L2), and [examples/towards5gs-helm/KubeDiagrams.yml](https://github.com/philippemerle/KubeDiagrams/blob/main/examples/towards5gs-helm/KubeDiagrams.yml#L2)) and provided to **KubeDiagrams** via the `--config` command-line option.\n\n## What do they say about it?\n\nPosts and blogs about **KubeDiagrams**:\n* [Facebook Kubernetes Users Group](https://www.facebook.com/groups/kubernetes.users/permalink/2818586068320504)\n* [Visualising SQL Server in Kubernetes](https://dbafromthecold.com/2025/02/06/visualising-sql-server-in-kubernetes/)\n\n## License\n\nThis project is licensed under the GPL-3.0 license - see the [LICENSE](https://github.com/philippemerle/KubeDiagrams/blob/main/LICENSE) file for details.\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "Generate Kubernetes architecture diagrams from Kubernetes manifest files, kustomization files, Helm charts, and actual cluster state",
    "version": "0.1.0",
    "project_urls": {
        "Discussions": "https://github.com/philippemerle/KubeDiagrams/discussions",
        "Homepage": "https://github.com/philippemerle/KubeDiagrams",
        "Issues": "https://github.com/philippemerle/KubeDiagrams/issues",
        "Wiki": "https://github.com/philippemerle/KubeDiagrams/wiki"
    },
    "split_keywords": [
        "kubernetes",
        "architecture",
        "diagrams"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "d86dade58f893ddc1dff2757a29336f3deecf450d9b647a1af2d858a8deadb2f",
                "md5": "fbe73f21ab1e8f761e516c27651826e5",
                "sha256": "24dd5ebe59b0f7f12ef96a76e1819c5de3bf350dcde75885f23190e7e8108a43"
            },
            "downloads": -1,
            "filename": "KubeDiagrams-0.1.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "fbe73f21ab1e8f761e516c27651826e5",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.9",
            "size": 111020,
            "upload_time": "2025-02-09T12:10:49",
            "upload_time_iso_8601": "2025-02-09T12:10:49.653927Z",
            "url": "https://files.pythonhosted.org/packages/d8/6d/ade58f893ddc1dff2757a29336f3deecf450d9b647a1af2d858a8deadb2f/KubeDiagrams-0.1.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "d556458ea585b97cfac512965e696500f820c3277ee07fd5a57afb4906ec61d5",
                "md5": "3a65b248ca650f65adff49fa59d68d68",
                "sha256": "1344e16970e7c622d58b92d84c01e0aa94016619193d841fcba264feaea543a9"
            },
            "downloads": -1,
            "filename": "kubediagrams-0.1.0.tar.gz",
            "has_sig": false,
            "md5_digest": "3a65b248ca650f65adff49fa59d68d68",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.9",
            "size": 114287,
            "upload_time": "2025-02-09T12:10:51",
            "upload_time_iso_8601": "2025-02-09T12:10:51.708341Z",
            "url": "https://files.pythonhosted.org/packages/d5/56/458ea585b97cfac512965e696500f820c3277ee07fd5a57afb4906ec61d5/kubediagrams-0.1.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-02-09 12:10:51",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "philippemerle",
    "github_project": "KubeDiagrams",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "kubediagrams"
}
        
Elapsed time: 0.56053s