k8s-to-diagram

command module
v0.0.0-...-28f0d2f Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 1, 2024 License: MIT Imports: 4 Imported by: 0

README

K8s Diagram architecture generator

A tool for visualizing Kubernetes infrastructure manifest using d2.

diagram generated

Overview

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.

Features

  • 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.

Installation

  1. Clone the repository:

    git clone git@github.com:kocierik/k8s-to-diagram.git
    cd k8s-to-diagram
    
  2. Build the application:

    go build -o k8s-diagram
    

Running with Docker

You can also run the application using Docker, which makes it easier to manage dependencies and run the program in a consistent environment.

  1. Build the Docker image:
docker build -t diagram:1.0 .
  1. Run the Docker container:
docker run -v ./manifests:/manifests -v ./images:/images diagram:1.0

Configuration

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}
        ]
      }

Troubleshooting

  • 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.

Contributing

Feel free to contribute by submitting issues or pull requests. Please adhere to the coding standards and ensure your contributions are well-tested.

License

This project is licensed under the MIT License. See the LICENSE file for details.

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
pkg
ai

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL