Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/inkdrop-org/inkdrop-visualizer
Visualizes your Terraform
https://github.com/inkdrop-org/inkdrop-visualizer
atlantis aws cloud devops terraform visualization
Last synced: 27 days ago
JSON representation
Visualizes your Terraform
- Host: GitHub
- URL: https://github.com/inkdrop-org/inkdrop-visualizer
- Owner: inkdrop-org
- License: mpl-2.0
- Created: 2023-12-18T11:31:02.000Z (11 months ago)
- Default Branch: main
- Last Pushed: 2024-06-03T14:13:46.000Z (5 months ago)
- Last Synced: 2024-07-16T14:41:20.031Z (4 months ago)
- Topics: atlantis, aws, cloud, devops, terraform, visualization
- Language: TypeScript
- Homepage: https://inkdrop.ai/
- Size: 6.86 MB
- Stars: 443
- Watchers: 3
- Forks: 16
- Open Issues: 11
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
Terraform Visualizer
Inkdrop is a CLI tool that creates interactive diagrams to visualize your Terraform.
It helps you onboard engineers, generate documentation and understand dependencies faster.
🚀 CI Integration | 💻 Interactive Demo | Give Feedback | 🙌 Join the Slack## Overview
Inkdrop generates a visual, interactive map of your resources helps you understand relationships and dependencies.Inkdrop takes your Terraform Plan and renders it locally as an interactive WebUI, allowing you to get a clean overview in seconds.
Benefits:
- Review proposed changes at a glance.
- Document your infrastructure automatically.
- Onboard engineers to a new project 10 times faster.## Installation
**With Brew:**```
brew tap inkdrop-org/inkdrop-visualizer
brew install inkdrop-visualizer
```
**With Linux:**```
wget https://github.com/inkdrop-org/inkdrop-visualizer/releases/latest/download/inkdrop-linux-x64.tar.gz
tar -xzf inkdrop-linux-x64.tar.gz
chmod +x inkdrop
mv inkdrop /usr/local/bin/
```**With NPM:**
```
npm install -g inkdrop-visualizer
```[**With Docker:**](#Docker-Usage)
## Usage
### CLI Usage
Run inkdrop where you would run Terraform init/plan.
```
terraform plan -out plan.out
inkdrop plan.out
```
This will launch an interactive WebUI showing you which resources will change according to your tf.plan.When you click on a resource you will get additional details such as variables and outputs used.
At the top left of the UI you can filter the diagram by resource type, tags and other built-in debugging filters .
### Command Line Arguments
| Argument | Description | Example Usage |
|--------------------|-----------------------------------------------------------------------|--------------------------------------------|
| (no argument) | Automatically launches a browser tab to display the diagram interactively.| `inkdrop` |
| `plan-filename` | Visualizes the impact of changes defined in a specified terraform plan (or plan JSON) file. | `inkdrop plan.out` |
| `--state-dirs` | List of directories that contain Terraform configuration files with configured backends. This option allows visualizing multiple states in a single diagram. | `inkdrop plan.out --state-dirs ./path/to/tf/dir1 ./path/to/tf/dir2` |
| `--help`, `-h` | Displays help information about the CLI tool and its commands. | `inkdrop --help` |
| `--version`, `-v` | Shows the current version number of the CLI tool. | `inkdrop --version` |
| `--debug` | Shows the logs of the diagram generation. | `inkdrop --debug` |
| `--path` | Sets the working directory to a specified Terraform project path. | `inkdrop --path ./repos/my-tf-project` |
| `--renderer-port` | Defines the port for the local diagram rendering service (default: `3000`). | `inkdrop --renderer-port 8080` |> **Note:** Without a plan file the diagram will be missing some functionality
### CI Usage
To run inkdrop from your CI process you will need to follow the following short tutorials:
**[Github example](/github-action-integration)**
**[Atlantis example](/atlantis-integration)**
**[Gitlab example (coming soon)]**
The runner will comment an SVG Image in the PR. Using the Inkdrop extension this image becomes interactive and behaves like the CLI version when you click on it.
### Docker Usage
```sh
docker run \
-v /path/to/your/terraform/root:/tfroot \ # Mount your Terraform root directory
--env TF_VERSION=1.5.7 \ # Set the Terraform version you're using
-p 3000:3000 \ # Map port 3000 for the WebUI
-it \ # Use -d instead of -it to run the container in detached mode
inkdroporg/inkdrop:latest \
plan.out [additional arguments]
```Replace `/path/to/your/terraform/root` with the absolute path to your local Terraform root directory. Adjust the `TF_VERSION` to match the version of Terraform you're using locally (e.g., `1.5.7`). The `plan.out` argument refers to your Terraform plan file, and you can add any additional arguments required.
## Misc
### TroubleshootingIf you encounter any issues while using inkdrop, please use the `--debug` flag and report the issue. We're looking forward to help.
### Telemetry
As this is a local CLI tool we have no information about your setup. The only telemetry we collect is a simple ping to our server, to estimate usage of the tool and the command line arguments you are using. To turn it off simply use the flag `--telemetry-off`.
### Development
We welcome contributions and feedback! Feel free to open GitHub issues for bugs or feature requests.### Contact
Feel free to reach out:
[Slack](https://join.slack.com/t/inkdrop-group/shared_invite/zt-2jjbx5wz4-lyN4YLzlwuccD00rnMTDew)
[Email](mailto:[email protected])
[Calendar](https://calendly.com/antoine-inkdrop/25-min)