A tool for visualizing Kubernetes infrastructure manifest using d2.
This program reads Kubernetes YAML manifests and generates a visual diagram of the infrastructure and its connections. By parsing the communication
annotations from the Kubernetes manifests, it creates a diagram showing how different services and deployments interact with each other.
- Parse Kubernetes YAML manifests: Reads and parses Kubernetes manifests from a directory.
- Generate diagrams: Creates a visual representation of the infrastructure based on communication annotations.
- Output formats: Generates diagrams in both SVG and PNG formats.
-
Clone the repository:
git clone git@github.com:kocierik/k8s-to-diagram.git cd k8s-to-diagram
-
Build the application:
go build -o k8s-diagram
You can also run the application using Docker, which makes it easier to manage dependencies and run the program in a consistent environment.
- Build the Docker image:
docker build -t diagram:1.0 .
- Run the Docker container:
docker run -v ./manifests:/manifests -v ./images:/images diagram:1.0
Ensure that your Kubernetes YAML manifests include communication
annotations in the following example format:
metadata:
annotations:
communication: |
{
"name": "service-name-0",
"inbound": [
{"service": "service-name-1", "port": 1234}
],
"outbound": [
{"service": "service-name-2", "port": 1234}
]
}
- Ensure valid YAML: Make sure your YAML files are correctly formatted and valid.
- Correct directory: Verify that the manifest directory path is correctly specified.
- Check annotations: Ensure that communication annotations are correctly formatted and included in the manifests.
Feel free to contribute by submitting issues or pull requests. Please adhere to the coding standards and ensure your contributions are well-tested.
This project is licensed under the MIT License. See the LICENSE file for details.