Interactive Terraform visualization. State and configuration explorer.

Overview

Rover - Terraform Visualizer

Rover is a Terraform visualizer.

In order to do this, Rover:

  1. generates a plan file and parses the configuration in the root directory.
  2. parses the plan and configuration files to generate three items: the resource overview (rso), the resource map (map), and the resource graph (graph).
  3. consumes the rso, map, and graph to generate an interactive configuration and state visualization hosts on localhost:9000.

Feedback (via issues) and pull requests are appreciated!

Rover Screenshot

Quickstart

The fastest way to get up and running with Rover is through Docker.

Run the following command in any Terraform workspace to generate a visualization. This command copies all the files in your current directory to the Rover container and exposes port :9000.

$ docker run --rm -it -p 9000:9000 -v $(pwd):/src im2nguyen/rover
2021/07/02 06:46:23 Starting Rover...
2021/07/02 06:46:23 Initializing Terraform...
2021/07/02 06:46:24 Generating plan...
2021/07/02 06:46:25 Parsing configuration...
2021/07/02 06:46:25 Generating resource overview...
2021/07/02 06:46:25 Generating resource map...
2021/07/02 06:46:25 Generating resource graph...
2021/07/02 06:46:25 Done generating assets.
2021/07/02 06:46:25 Rover is running on localhost:9000

Once Rover runs on localhost:9000, navigate to it to find the visualization!

Standalone mode

Standalone mode generates a rover.zip file containing all the static assets.

$ docker run --rm -it -p 9000:9000 -v $(pwd):/src im2nguyen/rover -standalone true

After all the assets are generated, unzip rover.zip and open rover/index.html in your favorite web browser.

Set environment variables

Use --env or --env-file to set environment variables in the Docker container. For example, you can save your AWS credentials to an .env file.

.env ">
$ printenv | grep "AWS" > .env

Then, add it as environment variables to your Docker container with --env-file.

$ docker run --rm -it -p 9000:9000 -v $(pwd):/src --env-file ./.env im2nguyen/rover

Define tfvars and Terraform variables

Use -tfVarsFile or -tfVar to define variables. For example, you can run the following in the example/random-test directory to overload variables.

$ docker run --rm -it -p 9000:9000 -v $(pwd):/src im2nguyen/rover -tfVarsFile test.tfvars -tfVar max_length=4

Installation

You can download Rover binary specific to your system by visiting the Releases page. Download the binary, unzip, then move rover into your PATH.

Build from source

You can build Rover manually by cloning this repository, then building the frontend and compiling the binary. It requires Go v1.16+ and npm.

Build frontend

First, navigate to the ui.

$ cd ui

Then, install the dependencies.

$ npm install

Finally, build the frontend.

$ npm run build

Compile binary

Navigate to the root directory.

$ cd ..

Compile and install the binary. Alternatively, you can use go build and move the binary into your PATH.

$ go install

Build Docker image

First, compile the binary for linux/amd64.

$ env GOOS=linux GOARCH=amd64 go build .

Then, build the Docker image.

$ docker build . -t im2nguyen/rover --no-cache

Basic usage

This repository contains two example Terraform configurations in example.

Navigate into random-test example configuration. This directory contains configuration that showcases a wide variety of features common in Terraform (modules, count, output, locals, etc) with the random provider.

$ cd example/random-test

Run Rover. Rover will start running in the current directory and assume the Terraform binary lives in /usr/local/bin/terraform by default.

$ rover
2021/06/23 22:51:27 Starting Rover...
2021/06/23 22:51:27 Initializing Terraform...
2021/06/23 22:51:28 Generating plan...
2021/06/23 22:51:28 Parsing configuration...
2021/06/23 22:51:28 Generating resource overview...
2021/06/23 22:51:28 Generating resource map...
2021/06/23 22:51:28 Generating resource graph...
2021/06/23 22:51:28 Done generating assets.
2021/06/23 22:51:28 Rover is running on localhost:9000

You can specify the working directory (where your configuration is living) and the Terraform binary location using flags.

$ rover -workingDir "example/eks-cluster" -tfPath "/Users/dos/terraform"

Once Rover runs on localhost:9000, navigate to it to find the visualization!

Issues
  • runtime error: invalid memory address or nil pointer dereference (Mislabeled Resource Type)

    runtime error: invalid memory address or nil pointer dereference (Mislabeled Resource Type)

    Posting this for now as I continue to debug, but maybe others are seeing similar issues.

    Overview: Runtime error when attempting to generate graph from provided plan that points to an invalid memory address reference. Upon further debugging, it appears to be related to a Data source type being labeled as a Resource source type. At the moment I am unsure of how to reproduce.

    Release Version: 3.0

    ERROR Message:

    > rover -planPath plan.out
    2022/01/31 09:48:08 Starting Rover...
    2022/01/31 09:48:08 Using provided plan...
    2022/01/31 09:48:12 Generating resource overview...
    2022/01/31 09:48:12 Generating resource map...
    panic: runtime error: invalid memory address or nil pointer dereference
    [signal SIGSEGV: segmentation violation code=0x1 addr=0x48 pc=0x174c28e]
    
    goroutine 1 [running]:
    main.(*rover).GenerateModuleMap(0xc000187680, 0xc00009fdd0, 0xc00036ac40, 0x38)
    	/Users/joseestrada/rover/map.go:225 +0x1dae
    main.(*rover).GenerateModuleMap(0xc000187680, 0xc00009e5a0, 0xc0003a8cf0, 0x25)
    	/Users/joseestrada/rover/map.go:253 +0x2357
    main.(*rover).GenerateModuleMap(0xc000187680, 0xc00050e750, 0xc000399170, 0x12)
    	/Users/joseestrada/rover/map.go:253 +0x2357
    main.(*rover).GenerateModuleMap(0xc000187680, 0xc000535b88, 0x0, 0x0)
    	/Users/joseestrada/rover/map.go:253 +0x2357
    main.(*rover).GenerateMap(0xc000187680, 0x0, 0x0)
    	/Users/joseestrada/rover/map.go:335 +0x1ee
    main.(*rover).generateAssets(0xc000187680, 0xc000187680, 0x2)
    	/Users/joseestrada/rover/main.go:193 +0x130
    main.main()
    	/Users/joseestrada/rover/main.go:138 +0xea5
    

    Additional Context: From what I gather and understand, it appears that my generated Terraform Plan is causing a runtime error due to a resource being mislabeled. I believe that a Data source is being labeled as a Resource type and thus causing the error.

    This error is happening during the generating of the resource map where it appears to be setting the file Name of the resource as well as its line number (code link). To help deep dive into the issue a bit more I modified the code locally which is described by the following code block.

    note: forgive my naming of things in advance. I am somewhat confused still about the difference between states and configs.

    			if configured {
    				var fname string
    				ind := fmt.Sprintf("%s.%s", re.ResourceType, re.Name)
    
    				log.Printf("Resource State Type: %s",rs.Type)
    
    				if rs.Type == ResourceTypeData {
    					
    					log.Println("Resource State Type is Data")
    					
    					ind = fmt.Sprintf("data.%s", ind)
    					fname = filepath.Base(configs[parentConfig].Module.DataResources[ind].Pos.Filename)
    					re.Line = &configs[parentConfig].Module.DataResources[ind].Pos.Line
    				} else if rs.Type == ResourceTypeResource {
    					
    					log.Printf("Resource Name: %s",re.Name)
    					log.Printf("Resource Type: %s",re.ResourceType)
    					for key := range configs[parentConfig].Module.ManagedResources {
    						log.Printf("Parent Module Configs Managed Resource Key: %s",key)
    					}
    
    					fname = filepath.Base(configs[parentConfig].Module.ManagedResources[ind].Pos.Filename)
    					re.Line = &configs[parentConfig].Module.ManagedResources[ind].Pos.Line
    				}
    
    				r.AddFileIfNotExists(parent, parentModule, fname)
    
    				parent.Children[fname].Children[id] = re
    
    			}
    

    The following output here shows a bit more whats going on.

    2022/01/31 09:48:12 Parent Module State Child Resource: module.atlantis_v2.module.ecs_service.module.alb_routing.data.aws_route53_zone.private
    2022/01/31 09:48:12 Resource State Type: data
    2022/01/31 09:48:12 Resource State Type is Data
    2022/01/31 09:48:12 Parent Module State Child Resource: module.atlantis_v2.module.ecs_service.module.alb_routing.data.aws_route53_zone.public
    2022/01/31 09:48:12 Resource State Type: resource
    2022/01/31 09:48:12 Resource Name: public
    2022/01/31 09:48:12 Resource Type: aws_route53_zone
    2022/01/31 09:48:12 Parent Module Configs Managed Resource Key: aws_lb_listener_rule.this
    2022/01/31 09:48:12 Parent Module Configs Managed Resource Key: aws_route53_record.public_record_prevent_destroy
    2022/01/31 09:48:12 Parent Module Configs Managed Resource Key: aws_route53_record.public_record
    2022/01/31 09:48:12 Parent Module Configs Managed Resource Key: aws_route53_record.private_record_prevent_destroy
    2022/01/31 09:48:12 Parent Module Configs Managed Resource Key: aws_route53_record.private_record
    2022/01/31 09:48:12 Parent Module Configs Managed Resource Key: aws_lb_target_group.this_prevent_destroy
    2022/01/31 09:48:12 Parent Module Configs Managed Resource Key: aws_lb_target_group.this
    2022/01/31 09:48:12 Parent Module Configs Managed Resource Key: aws_lb_listener_rule.this_prevent_destroy
    

    First thing to note here that is worth calling out, there is a 3 depth module call in play. I don't think that matters but maybe it does. It can be seen here at the resource address module.atlantis_v2.module.ecs_service.module.alb_routing.data.aws_route53_zone.public is being labeled as a Resource as opposed to Data. The log further down confirms that the Parent module does not contain a resource for hosted zone. The odd thing here is that the resource prior is very similar, but is treated correctly as a Data type. It has an almost identical path to the impacted resource address.

    At the moment I cannot immediately tell how this type is being set because I assume that is where the problem is located or will at least tell us more information about it. FWIW this is a runtime error that is happening when allowing rover to execute the Terraform Plan as well.

    I will keep digging into this but if others see anything similar or have some tips help is appreciated.

    opened by jlestrada 28
  • [Feature Request] How can rover use an already generated plan ?

    [Feature Request] How can rover use an already generated plan ?

    Thank you for this great tool! It is really useful for a 4-eye plan checking. But it will be really cool to be able to use rover directly with an already existing plan file (json or not) since some organization (as mine) are using some automation and abstraction stuff to generate plans and then apply them. So as a for eye checking it will be very interesting.

    Cheers :)

    enhancement completed 
    opened by soubinan 16
  • Use predefined TF plan for visualization

    Use predefined TF plan for visualization

    Hi. Thanks for developing this tool. I am not able to run the tool as it tries to generate the TF plan but my configuration uses symlinked files and environment variables to generate the plan. Could you support loading the details directly from a specified plan file instead of generating it on the fly?

    opened by avarghese-sqsp 15
  • Invalid visualization

    Invalid visualization

    As was being discussed in #90, according to @JackFlukinger, there's an issue in the visualization of my AWS-based TF state.

    SVG generated by Rover is here: https://file.io/YJrw7hJXmSEp

    Let's discuss and fix this issue here instead of in the original bug meant for the panic that got fixed.

    Okay @nonbeing , definitely not intended. Where is the data.aws_iam_policy_document.webhook_sns_topic_policy supposed to be housed? Should be a simple fix.

    I'm not sure I understand, @JackFlukinger ... Could you please explain what the issue is?

    opened by nonbeing 14
  • Terraform Visualizer  - Resources in the graph are on top of each other

    Terraform Visualizer - Resources in the graph are on top of each other

    Hi,

    This could be by design, but when I go to the Rover - Terraform Visualizer, all the resources are on top of each other in the centre of the graph.

    Do I need to move these elements around manually or should it be done by Rover?

    Thank you! Dave

    bug completed 
    opened by davetustin 10
  • terraform modules in relative subdirectories

    terraform modules in relative subdirectories

    Hi, we do have the terraform modules relative to the environment related files. Is it possible to use rover with this setup? /env/env_name/main.tf /env/env_name/state.conf ... configuration.auto.tfvars.... etc /terraform_modules/mod1 /terraform_modules/mod2

    Where e.g. main.tf points to module ../../terraform_modules/module1

    Thanks

    completed 
    opened by zimmdi 9
  • [BUG] panic: runtime error: invalid memory address or nil pointer dereference v0.3.0

    [BUG] panic: runtime error: invalid memory address or nil pointer dereference v0.3.0

    Hi, thanks for that amazing tool.

    I found that version v0.3.0 doesn't work while v0.2.2 does work:

    docker run --rm -it -p 9000:9000 -v $(pwd):/src --env=AWS_ACCESS_KEY_ID="nanana" --env=AWS_SECRET_ACCESS_KEY="nununu" --env=AWS_DEFAULT_REGION="eu-west-1" --platform linux/amd64 im2nguyen/rover -tfBackendConfig lalala.s3.tfbackend -tfVarsFile lalala.tfvars -workspaceName=lalala
    2022/01/14 11:59:40 Starting Rover...
    2022/01/14 11:59:40 Initializing Terraform...
    2022/01/14 11:59:58 Running in mkyc workspace...
    2022/01/14 12:00:03 Generating plan...
    2022/01/14 12:00:34 Parsing configuration...
    2022/01/14 12:00:34 Generating resource overview...
    2022/01/14 12:00:35 Generating resource map...
    panic: runtime error: invalid memory address or nil pointer dereference
    [signal SIGSEGV: segmentation violation code=0x1 addr=0x48 pc=0xa5b0cf]
    
    goroutine 1 [running]:
    main.(*rover).GenerateModuleMap(0xc000159320, 0xc0003c87e0, {0xc00003d8d8, 0x12})
            /src/map.go:212 +0x1acf
    main.(*rover).GenerateModuleMap(0xc000159320, 0xc0006ddb88, {0x0, 0x0})
            /src/map.go:240 +0xefc
    main.(*rover).GenerateMap(0xc000159320)
            /src/map.go:319 +0x1bc
    main.(*rover).generateAssets(0xc000159320)
            /src/main.go:207 +0x176
    main.main()
            /src/main.go:142 +0xd19
    
    

    when running the same with v0.2.2 it works.

    opened by mkyc 8
  • Nested Modules and SVG Image Generation in CLI

    Nested Modules and SVG Image Generation in CLI

    This is a big one.

    Adds:

    • Full nested module support
    • RSO rewritten to support nested modules and spotty configuration
    • Graph node and edge refactor to generate from resource map instead of going back through plans, states, configs again
      • Can make changes to graph output by modifying map
    • SVG instead of PNG output -- browsers only allow downloaded images up to some unspecified size. I had some trouble with large graphs not exporting due to this. SVG format makes the images much smaller, and infinitely scalable
    • Some map updates, always shows line numbers (even in nested modules) if available
      • Nested resources and modules are indented for general readability
    • Terraform 1.1.2 support
    • SVG export support in CLI with -genImage true. Probably does not work with docker, though.

    I'm happy to go into a ton more detail, but it all works. If you don't want to PR because this is so ginormous I get it.

    Resolves #60 Resolves #57 Resolves #48 Resolves #46 Resolves #26

    opened by JackFlukinger 8
  • Rover & CDK for Terraform & Azure CLI

    Rover & CDK for Terraform & Azure CLI

    Hi,

    First of all Rover seems great!

    But, I'm trying to use Rover on a CDK for Terraform -project (CDKTF). It is understandable, that Rover does not work in the basedir of the CDK project. So, I cd to the dir where CDKTF creates the Terraform JSON. In that dir what happens is:

    % ls
    cdk.tf.json     plan
    % docker run --rm -it -p 9000:9000 -v $(pwd):/src im2nguyen/rover
    2021/09/24 07:50:10 Starting Rover...
    2021/09/24 07:50:10 Initializing Terraform...
    2021/09/24 07:50:10 Unable to parse Plan: exit status 1
    
    Error: Error building ARM Config: Please ensure you have installed Azure CLI version 2.0.79 or newer. Error parsing json result from the Azure CLI: Error launching Azure CLI: exec: "az": executable file not found in $PATH.
    
    
    % az --version                                                   
    azure-cli                         2.28.0
    
    core                              2.28.0
    telemetry                          1.0.6
    
    Python location '/usr/local/Cellar/azure-cli/2.28.0/libexec/bin/python'
    Extensions directory '/Users/andreas.asuja/.azure/cliextensions'
    
    Python (Darwin) 3.9.7 (default, Sep  3 2021, 12:37:55) 
    [Clang 12.0.5 (clang-1205.0.22.9)]
    
    Legal docs and information: aka.ms/AzureCliLegal
    
    
    Your CLI is up-to-date.
    

    I'm sorry I don't have time to dig more into this, but just to inform you.

    opened by ghost 8
  • [Feature Request] rover support to terraform workspaces

    [Feature Request] rover support to terraform workspaces

    First this tool is awesome!! we use terraform workspaces heavily and would love to have a way to pass the terraform workspace select command some how. Let me know if there is a way!

    thanks!

    enhancement completed 
    opened by vinayatnie 8
  • runtime panic issue with 0.3.0 release

    runtime panic issue with 0.3.0 release

    Still have some issue with running rover in my local

    How to reproduce

    • grab the artifact from releases page
    • create main.tf
    • run rover_0.3.0_darwin_arm64/rover_v0.3.0 -standalone -tfPath <path-to-terraform-installation>

    main.tf ref

    output "hello_world" {
      value = "Hello, World!"
    }
    

    error log

    2022/01/24 14:25:15 Starting Rover...
    2022/01/24 14:25:15 Initializing Terraform...
    2022/01/24 14:25:15 Generating plan...
    2022/01/24 14:25:15 Generating resource overview...
    open .terraform/modules/modules.json: no such file or directory
    2022/01/24 14:25:15 Generating resource map...
    panic: runtime error: invalid memory address or nil pointer dereference
    [signal SIGSEGV: segmentation violation code=0x2 addr=0xb0 pc=0x10302d520]
    
    goroutine 1 [running]:
    main.(*rover).GenerateModuleMap(0x1400000b320, 0x140003c9b68, {0x0, 0x0})
    	rover/map.go:103 +0x1e0
    main.(*rover).GenerateMap(0x1400000b320)
    	rover/map.go:322 +0x1c8
    main.(*rover).generateAssets(0x1400000b320)
    	rover/main.go:193 +0x10c
    main.main()
    	rover/main.go:138 +0xeb8
    
    opened by chenrui333 7
  • Windows support

    Windows support

    When running the 0.3.2 binary on Windows I get the following error:

    > C:\prg\rover\rover_v0.3.2.exe
    2022/06/28 15:32:52 Starting Rover...
    2022/06/28 15:32:52 Initializing Terraform...
    2022/06/28 15:32:52 Unable to parse Plan: Unable to initialize Terraform Plan: exec: "/usr/local/bin/terraform": file does not exist
    

    What can I do to fix this?

    I now run rover with: C:\prg\rover\rover_v0.3.2.exe -tfPath C:\ProgramData\chocolatey\bin\terraform.exe

    Would be great if rover would scan the folders inside the PATH environment variable.

    opened by cveld 0
  • Dependencies GCP

    Dependencies GCP

    Hello!

    I'm trying to use your application and have a question about the relationships in the graph.

    I've tried to visualise the infrastructure from GCP and everything seems fine, but there are completely missing links between the modules.

    Is this problem related to the provider?

    Start command: docker run
    --rm -it -p 9000:9000 -v $(pwd):/src
    -e GOOGLE_APPLICATION_CREDENTIALS=/tmp/keys/auditsatori-dev-6bc7cf95d0a9.json
    -v $GOOGLE_APPLICATION_CREDENTIALS:/tmp/keys/auditsatori-dev-6bc7cf95d0a9.json:ro
    im2nguyen/rover

    screenshot of the graph: Screenshot 2022-06-17 at 15 09 56

    Thanks!

    opened by EKPAVEL 0
  • SVG image is not at all visible

    SVG image is not at all visible

    Ran rover on top of this folder on windows machine.

    https://github.com/hashicorp/terraform-provider-aws/tree/main/examples/eks-getting-started

    "C:\Users\UReddy\Desktop\eks\rover_0.3.2_windows_amd64\rover_v0.3.2.exe" -workingDir . -tfPath "C:\tools\terraform.exe"

    But getting very small image not visible at all.

    Same issue even when saving the svg file.

    rover (1)

    opened by ukreddy-erwin 0
  • Dependencies in configuration blocks are not shown

    Dependencies in configuration blocks are not shown

    When referencing other resources in the configuration block of a resource block, dependencies on those resources are not displayed.

    Example: define aws_ecs_service as follows

    resource "aws_ecs_service" "example" {
      name                              = "ecs-sample-service"
      cluster                           = aws_ecs_cluster.example.arn
      task_definition                   = aws_ecs_task_definition.example.arn
      desired_count                     = 1
      launch_type                       = "FARGATE"
      platform_version                  = "1.4.0"
      health_check_grace_period_seconds = 60
      enable_execute_command            = true
    
      network_configuration {
        assign_public_ip = false
        security_groups  = [module.ecs_app_sg.security_group_id]
    
        subnets = [
          aws_subnet.private_0.id,
          aws_subnet.private_1.id,
        ]
      }
    
      load_balancer {
        target_group_arn = aws_lb_target_group.example.arn
        container_name   = "ecs-sample-app"
        container_port   = 80
      }
    }
    
    

    Visualizing this definition would look like this

    image

    There should be dependencies on the security group in the network_configuration block and the target_group in the load_balancer block, but they are not shown. On the other hand, dependencies on cluster and task_definition, which are written directly under the resource block, are shown.

    Another example: define aws_lb_listener_rule as follows

    resource "aws_lb_listener_rule" "example" {
      listener_arn = aws_lb_listener.http.arn
      priority     = 100
    
      action {
        type             = "forward"
        target_group_arn = aws_lb_target_group.example.arn
      }
    }
    

    Similar to the above example, the visualization of this definition does not show the dependency on target_group in the action block

    image

    Thank you.

    opened by teru01 1
  • error launching rover

    error launching rover

    D:\install\terraform\resource-discovery>..\..\rover\rover_v0.1.3.exe -tfPath d:\install\terraform\terraform.exe
    2022/05/03 16:56:08 Starting Rover...
    2022/05/03 16:56:08 Initializing Terraform...
    2022/05/03 16:56:21 Generating plan...
    2022/05/03 16:56:43 Unable to parse Plan: unsupported state format version: expected ["0.1" "0.2"], got "1.0"
    

    I use terraform 1.1.9 and provider registry.terraform.io/hashicorp/oci v4.73.0

    opened by ffred1962 0
Releases(v0.3.3)
Owner
Tu Nguyen
Tu Nguyen
Callgraph analysis and visualization for Go

Gocyto A Go SSA callgraph builder and visualizer, by @protolambda. Features: output to generic Cytoscape JSON format. (list of nodes, list of edges) o

Diederik Loerakker 132 Jul 3, 2022
gosivy - Another visualization tool for Go process metrics

gosivy Another visualization tool for Go process metrics. Gosivy tracks Go process's metrics and plot their evolution over time right into your termin

Ryo Nakao 444 Jul 29, 2022
🚀Statsview is a real-time Golang runtime stats visualization profiler

Statsview is a real-time Golang runtime stats visualization profiler. It is built top on another open-source project, go-echarts, which helps statsview to show its graphs on the browser.

go-echarts 491 Jul 27, 2022
entviz is an ent extension that provides visualization of the schema graph

entviz entviz is an ent extension that creates visual graph (html file) of your ent's schema. install go get github.com/hedwigz/entviz add this exten

Amit Shani 75 Jul 9, 2022
Sloop - Kubernetes History Visualization

Sloop - Kubernetes History Visualization Sloop monitors Kubernetes, recording histories of events and resource state changes and providing visualizati

Salesforce 1.1k Aug 2, 2022
Data visualization with chart, Create CSV file, Read Write CSV file

Data visualization with chart, Create CSV file, Read Write CSV file, Read from json file and many more in single project ......

MD FAISAL PORAG 1 Jan 13, 2022
HSM package provides a simple state chart library written in Go.

UML HSM HSM package provides a simple state chart library written in Go. Supported UML State Chart Features Feature Implemented Test case Simple state

Chris Castro 1 Apr 14, 2022
A repository for plotting and visualizing data

gonum/plot is the new, official fork of code.google.com/p/plotinum. It provides an API for building and drawing plots in Go

null 2.2k Aug 4, 2022
Tool that can parse Go files into an abstract syntax tree and translate it to several programming languages.

GoDMT GoDMT, the one and only Go Data Model Translator. The goal of this project is to provide a tool that can parse Go files that include var, const,

Josep Jesus Bigorra Algaba 42 Jan 29, 2022
A repository for plotting and visualizing data

Gonum Plot gonum/plot is the new, official fork of code.google.com/p/plotinum. It provides an API for building and drawing plots in Go. Note that this

null 19.1k Jun 3, 2021
Ltree Visualizer - A golang library to visualize postgres ltree type data using DOT language and Graphviz

Ltree Visualizer A golang library to visualize postgres ltree type data using DOT language and Graphviz What is Ltree? Ltree is a data type which is u

Vasubabu Jinagam 8 Jun 12, 2022
termdbms: A TUI for viewing and editing databases, written in Go

termdbms: A TUI for viewing and editing databases, written in Go Database Support SQLite made with modernc.org/sqlite, charmbracelet/bubbletea, and c

Matt Farstad 1.1k Jul 31, 2022
Signum Explorer Telegram Bot - it's a simplified version of the web Signum Explorer

Signum Explorer Telegram Bot - it's a simplified version of the web Signum Explorer. Bot allows you to easily monitor the status of your account and to receive notifications about new transactions and blocks.

Anatoliy Bezgubenko 30 May 12, 2022
State observer - StateObserver used to synchronize the local(cached) state of the remote object with the real state

state observer StateObserver used to synchronize the local(cached) state of the

Ilya 2 Jan 19, 2022
CLI to migrate Terraform Configuration and State

tfmigrator CLI CLI to migrate Terraform Configuration and State. The migration feature is implemented with tfmigrator/tfmigrator, so please see the do

null 29 Jun 2, 2022
An ease to use finit state machine golang implementation.Turn any struct to a fsm with graphviz visualization supported.

go-fsm An ease to use finit state machine golang implementation.Turn any struct to a fsm with graphviz visualization supported. usage import github.co

FingerLiu 5 Dec 26, 2021
Interactive dependency graph visualization tool for golang

Interactive dependency graph visualization tool for golang using the awesome cytoscape graph visualizer.

Armin Becher 5 Nov 1, 2021
cluster-api-state-metrics (CASM) is a service that listens to the Kubernetes API server and generates metrics about the state of custom resource objects related of Kubernetes Cluster API.

Overview cluster-api-state-metrics (CASM) is a service that listens to the Kubernetes API server and generates metrics about the state of custom resou

Daimler Group 58 Jul 23, 2022
Us-api: a simple service that returns the US state code based on the state

us-api us-api is a simple service that returns the US state code based on the state. It does not support creating, updating nor deleting data. Local D

Alec Cunningham 0 Dec 13, 2021
Reads from existing Cloud Providers (reverse Terraform) and generates your infrastructure as code on Terraform configuration

TerraCognita Imports your current Cloud infrastructure to an Infrastructure As Code Terraform configuration (HCL) or/and to a Terraform State. At Cycl

Cycloid 1.2k Aug 2, 2022
Terraform-provider-e2e-network - Terraform Provider Scaffolding (Terraform Plugin SDK)

This template repository is built on the Terraform Plugin SDK. The template repository built on the Terraform Plugin Framework can be found at terraform-provider-scaffolding-framework.

eSadhana 0 Jan 19, 2022
kube-champ 38 Jun 27, 2022
Terraform-equinix-migration-tool - Tool to migrate code from Equinix Metal terraform provider to Equinix terraform provider

Equinix Terraform Provider Migration Tool This tool targets a terraform working

Equinix 1 Feb 15, 2022
Terraform-in-Terraform: Execute Modules directly from the Terraform Registry

Terraform-In-Terraform Provider This provider allows running Terraform in Terraform. This might seem insane but there are some edge cases where it com

WeakPixel 38 Jul 15, 2022
Simple tool to move Azure resources based on Terraform state

aztfmove Simple tool to move Azure resources based on Terraform state Goal It is sometimes inevitable to move Azure resources to a new subscription or

null 25 Jul 25, 2022
commit/branch/workdir explorer for git

gitin gitin is a commit/branch/status explorer for git gitin is a minimalist tool that lets you explore a git repository from the command line. You ca

Ibrahim Serdar Acikgoz 1.8k Jul 30, 2022
commit/branch/workdir explorer for git

gitin gitin is a commit/branch/status explorer for git gitin is a minimalist tool that lets you explore a git repository from the command line. You ca

Ibrahim Serdar Acikgoz 1.8k Jul 26, 2022
AWS Data Transfer Cost Explorer

The AWS Data Transfer Cost Explorer The AWS Data Transfer Cost Explorer tool analyzes the billed Data Transfer items in your AWS account and presents

Oğuzhan YILMAZ 90 Jul 18, 2022
1Pass - 1Password Linux CLI explorer

1Pass is a command line application that allows to explore 1Password OPVault format. Application was created because there is no official 1Password desktop client for Linux users.

Maciej Bedra 6 Nov 5, 2021