# InfraMap [](https://pkg.go.dev/github.com/cycloidio/inframap) [](https://repology.org/project/inframap/versions) [](https://formulae.brew.sh/formula/inframap) [](https://gitter.im/cycloidio/inframap) Read your tfstate or HCL to generate a graph specific for each provider, showing only the resources that are most important/relevant. ## Cloud Providers We support **all** cloud providers, but we have some (listed below) that we have specific logic that allows us to better represent information that comes from these providers. For the other providers the resulting representation will simply be all resources present without any simplification or refinement. For TFState generations we are limited to versions 3 and 4. | Provider | State | HCL | Grouping1 | External Nodes2 | IAM3 | |:--:|:--:|:--:|:--:|:--:|:--:| | | :heavy_check_mark: | :heavy_check_mark: | [WIP](https://github.com/cycloidio/inframap/issues/6) | :heavy_check_mark: | :heavy_multiplication_x: (https://github.com/cycloidio/inframap/issues/11)| | | :heavy_check_mark: | :heavy_check_mark: | :heavy_multiplication_x: | :heavy_multiplication_x: | :heavy_multiplication_x: | | | :heavy_check_mark: | :heavy_check_mark: | :heavy_multiplication_x: | :heavy_multiplication_x: | :heavy_multiplication_x: | | | :heavy_check_mark: | :heavy_check_mark: | :heavy_multiplication_x: | :heavy_multiplication_x: | :heavy_multiplication_x: | | | :heavy_check_mark: | :heavy_check_mark: | :heavy_multiplication_x: | :heavy_multiplication_x: | :heavy_multiplication_x: | | | :heavy_check_mark: | :heavy_check_mark: | :heavy_multiplication_x: | :heavy_multiplication_x: | :heavy_multiplication_x: | 1. **Grouping**: Group elements that belong to the same group like VPCs or regions 2. **External Nodes**: Show the ingress of the Nodes if any 3. **IAM**: Connections based on IAM (Identity Access Management) ## Installation ### Stable To install the latest release of Inframap, you can pick one of this methods: * pull the latest release from the [Releases](https://github.com/cycloidio/inframap/releases/) page * pull the latest docker [image](https://hub.docker.com/r/cycloid/inframap) from the Docker hub * use your Linux package manager (only [AUR](https://aur.archlinux.org/packages/inframap) at the moment) ### Development You can build and install with the latest sources, you will enjoy the new features and bug fixes. It uses Go Modules (1.13+) ```shell $ git clone https://github.com/cycloidio/inframap $ cd inframap $ go mod download $ make build ``` ### Install via brew If youre macOS user and using [Homebrew](https://brew.sh/), you can install via brew command: ```sh $ brew install inframap ``` ## Usage The `inframap --help` will show you the basics. [](https://asciinema.org/a/347600) The most important subcommands are: * `generate`: generates the graph from STDIN or file. * `prune`: removes all unnecessary information from the state or HCL (not supported yet) so it can be shared without any security concerns ### Example Visualizing with [dot](https://graphviz.org/download/) ```shell $ inframap generate state.tfstate | dot -Tpng > graph.png ``` or from the terminal itself with [graph-e