SaaSHub helps you find the best software and product alternatives Learn more →
Top 23 Go Terraform Projects
-
terraform
Terraform enables you to safely and predictably create, change, and improve infrastructure. It is a source-available tool that codifies APIs into declarative configuration files that can be shared amongst team members, treated as code, edited, reviewed, and versioned.
-
microservices-demo
Sample cloud-first application with 10 microservices showcasing Kubernetes, Istio, and gRPC.
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
-
terraformer
CLI tool to generate terraform files from existing infrastructure (reverse Terraform). Infrastructure to Code
-
terragrunt
Terragrunt is a thin wrapper for Terraform that provides extra tools for working with multiple Terraform modules.
-
terratest
Terratest is a Go library that makes it easier to write automated tests for your infrastructure code.
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
-
coder
Coder provisions software development environments via Terraform on Linux, macOS, Windows, X86, ARM, and of course, Kubernetes.
-
wild-workouts-go-ddd-example
Go DDD example application. Complete project to show how to apply DDD, Clean Architecture, and CQRS by practical refactoring.
-
terrascan
Detect compliance and security violations across Infrastructure as Code to mitigate risk before provisioning cloud native infrastructure.
-
go-coffeeshop
☕ A practical event-driven microservices demo built with Golang. Nomad, Consul Connect, Vault, and Terraform for deployment
-
digger
Digger is an open source IaC orchestration tool. Digger allows you to run IaC in your existing CI pipeline ⚡️
-
terracognita
Reads from existing public and private cloud providers (reverse Terraform) and generates your infrastructure as code on Terraform configuration
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
I am not only a big fan of hashicorp terraform. I'm also one of the early adopters of it. So this is my main go-to Infrastructure as a Code tool. However all the resources I use are supported by other IaaC solutions such as AWS CloudFormation and AWS CDK. You definitely got to use one to avoid loosing the track of resources you create.
You can check https://github.com/GoogleCloudPlatform/microservices-demo for Kubernetes show-casing
Terraformer is a CLI tool developed by Google that generates Terraform files from existing infrastructure (reverse Terraform), simplifying the process of adopting Terraform in existing environments and speeding up the initial setup process. Terraformer supports multiple cloud providers, including AWS, Google Cloud, Azure, and others.
API for IaaC: At least for Pulumi, it appears not all IPv6 settings are configurable. For example, I could not retrieve IPv6 automatically in the same way as IPv4 via Elastic IP, or I could not configure ICMPv6 ACL (a similar issue is reported in the Terraform repository).
Terragrunt is a Terraform wrapper, designed to fill in the gaps when it comes to large scale Terraform configurations.
The Terratest Go library leverages this to define a variety of test cases used to test Docker images, cloud infrastructure defined for AWS, Azure, GCP, Kubernetes, and many more.
Project mention: OpenTofu 1.7.0 is out with State Encryption, Dynamic Provider-defined Functions | news.ycombinator.com | 2024-04-30None of these are a replacement of Terraform Cloud (recently rebranded to HCP Terraform). For example, when you create a PR, it could affect multiple workspaces. The new experimental version of TFC/TFE (I refuse to call it HCP!) implements Stacks, which is something like a workflow, and links one workspace output to other workspace inputs. None of the open-source solutions, including the paid Digger [0], support this - only the paid one, such as Spacelift [1] (which is the closest to TFC if you ask me). Having a monorepo of Terraform is a common design pattern, so, if I change an embedded module, it could trigger changes it many workspaces. As far as I know, Atlantis [2] can't really help in this case.
By the way, the reason I singled-out Spacelift is due to its quality, and the great Terraform provider it has. Scalr [3], for example, has a really low-quality Terraform provider. I extensively use the hashicorp/tfe provider to manage TFC itself.
[0]: https://digger.dev/
[1]: https://spacelift.io/
[2]: https://www.runatlantis.io/
[3]: https://www.scalr.com/
Project mention: Show HN: Lapdev, a new open-source remote dev environment management software | news.ycombinator.com | 2024-03-23Founder of coder (https://github.com/coder/coder) here. We choose Terraform as our provisioning layer so that users can provision full blown VMs as their development environment.
We have many teams using GPUs with Coder for ML workloads but doing GUI/Game remote development where interactivity is essential remains elusive.
3. tfsec: https://github.com/aquasecurity/tfsec tfsec uses a suite of security checks to scan your Terraform templates, helping to identify potential security issues before infrastructure is deployed.
Project mention: Steampipe: Dynamically query APIs, code and more with SQL | news.ycombinator.com | 2024-04-04
Project mention: Looking for elegant code bases written in Golang | news.ycombinator.com | 2023-12-09Take a look at: https://github.com/ThreeDotsLabs/wild-workouts-go-ddd-exampl...
(I’m one of the authors.)
This project shows how to apply more complex patterns popular in business applications while staying true to the Go ideas, and not copying them blindly from Java.
In the Go community, you’ll often hear people say „just keep things simple” beats all patterns and is all you need. This may be true if you write a CLI tool or a small library, but if you have a team maintaining a big application, some patterns are super helpful.
TFLint is a Terraform linter focused on possible errors, best practices, and style conventions in your Terraform code.
2. Terrascan: https://github.com/tenable/terrascan Terrascan detects security vulnerabilities and compliance violations across your IaC. Supports multiple cloud providers, ensuring that your infrastructure complies with security best practices.
Documentation is really important, so having a README.md file inside your Terraform repository that explains how to use the automation (including descriptions of variables and outputs) really help in understanding what has been implemented. To easily generate the description of variables and outputs, you can leverage tfdocs.
Project mention: Can Visualising Terraform help in enabling a dry run / readonly modes for Developers planning their Terraform? | /r/Terraform | 2023-06-28Rover:
Project mention: OpenTofu 1.7.0 is out with State Encryption, Dynamic Provider-defined Functions | news.ycombinator.com | 2024-04-30None of these are a replacement of Terraform Cloud (recently rebranded to HCP Terraform). For example, when you create a PR, it could affect multiple workspaces. The new experimental version of TFC/TFE (I refuse to call it HCP!) implements Stacks, which is something like a workflow, and links one workspace output to other workspace inputs. None of the open-source solutions, including the paid Digger [0], support this - only the paid one, such as Spacelift [1] (which is the closest to TFC if you ask me). Having a monorepo of Terraform is a common design pattern, so, if I change an embedded module, it could trigger changes it many workspaces. As far as I know, Atlantis [2] can't really help in this case.
By the way, the reason I singled-out Spacelift is due to its quality, and the great Terraform provider it has. Scalr [3], for example, has a really low-quality Terraform provider. I extensively use the hashicorp/tfe provider to manage TFC itself.
[0]: https://digger.dev/
[1]: https://spacelift.io/
[2]: https://www.runatlantis.io/
[3]: https://www.scalr.com/
Driftctl is an open-source Terraform drift detection tool that tracks and warns about infrastructure drift. Driftctl scans your infrastructure, compares it with your IaC configurations (like Terraform), and reports discrepancies.
Project mention: What went wrong with UniSuper and Google Cloud? | news.ycombinator.com | 2024-05-15The Terraform provider hard-codes delay_hours to zero. We can't know if this was TF-initiated (I agree with the general sentiment here re: the usefulness of forensic analysis). But if it was, the TF provider bypasses an important safety mechanism.
https://github.com/hashicorp/terraform-provider-google/blob/...
Project mention: Generate Terraform code from your existing cloud infrastructure | news.ycombinator.com | 2023-12-12
Go Terraform related posts
-
DNS as code
-
What went wrong with UniSuper and Google Cloud?
-
Cleaning routines to keep your project without bugs
-
Prevendo Custo de Arquitetura Terraform
-
Show HN: Tenv – OpenTofu, Terraform and Terragrunt version manager
-
How to Manage Multiple Terraform Environments Efficiently
-
Eliminate IPv4 tax on AWS, is it that easy?
-
A note from our sponsor - SaaSHub
www.saashub.com | 20 May 2024
Index
What are some of the best open-source Terraform projects in Go? This list will help you:
Project | Stars | |
---|---|---|
1 | terraform | 41,329 |
2 | microservices-demo | 15,878 |
3 | terraformer | 11,859 |
4 | infracost | 10,322 |
5 | terraform-provider-aws | 9,501 |
6 | terragrunt | 7,666 |
7 | terratest | 7,355 |
8 | atlantis | 7,373 |
9 | coder | 7,048 |
10 | tfsec | 6,583 |
11 | steampipe | 6,459 |
12 | wild-workouts-go-ddd-example | 4,922 |
13 | tflint | 4,634 |
14 | terrascan | 4,531 |
15 | terraform-provider-azurerm | 4,426 |
16 | terraform-docs | 4,037 |
17 | go-coffeeshop | 3,952 |
18 | aiac | 3,310 |
19 | rover | 2,920 |
20 | digger | 2,711 |
21 | driftctl | 2,412 |
22 | terraform-provider-google | 2,227 |
23 | terracognita | 2,110 |
Sponsored