Terraform Tools
Terraform is part of a rich infrastructure and DevOps ecosystem. The tools below extend Terraform’s functionality or pair with Terraform to solve a broad range of infrastructure challenges.
Develop and Validate Configuration
Name | Maintainer | Description | Tutorial |
---|---|---|---|
Cloud Development Kit for Terraform (CDKTF) | HashiCorp | Use familiar programming languages to define and provision infrastructure. CDKTF currently supports TypeScript, Python, Java, C#, and Go (experimental). | Write CDK for Terraform configurations |
Visual Studio Code Extension | HashiCorp | Enable syntax highlighting and other editing features in VS Code using the Terraform Language Server. | |
Language Server | HashiCorp | Add support for the Terraform configuration language to editors that use the Language Server Protocol, like Sublime Text, vim, emacs, etc. | |
console | HashiCorp | Evaluate Terraform expressions and explore your Terraform project's state. The console helps you develop and debug your configuration, especially when working with complex state data and Terraform expressions. | Develop Configuration with the Console |
Manage Infrastructure
Name | Maintainer | Description | Tutorial |
---|---|---|---|
Kubernetes Operator for Terraform | HashiCorp | Manage cloud and on-prem infrastructure through a Kubernetes custom resource definition (CRD) and HCP Terraform. | Deploy Infrastructure with the HCP Terraform Operator for Kubernetes |
ServiceNow Catalog | HashiCorp | Create Terraform configuration to order Service Items, create workspaces, and perform Terraform runs from ServiceNow. | |
Consul Terraform Sync (CTS) | HashiCorp | Automatically request network infrastructure updates to accommodate Consul service registrations. Works with A10 ADC, F5 BIG IP, Palo Alto Networks, and more. | Network Infrastructure Automation (NIA) |
Automate Terraform
Name | Maintainer | Description | Tutorial |
---|---|---|---|
terraform-exec | HashiCorp | Use this Go module to construct and run CLI commands. Refer to the terraform-json repository (below) for documentation about the return values. | |
terraform-json | HashiCorp | Use the data types and helper functions in this repository to work with JSON-formatted Terraform output. | |
TFE Provider | HashiCorp | Manage HCP Terraform or Terraform Enterprise with Terraform itself. Create, modify, and delete organizations, workspaces, teams, variables, run triggers, policy sets, and more. | |
CircleCI Orb | Third Party | Deploy your Terraform infrastructure with a CircleCI pipeline. CircleCI Orbs let you package, ship, and re-use configurations. | Deploy Terraform infrastructure with CircleCI |
GitHub Actions for Terraform | Third Party | Automate Terraform in your GitHub Actions workflow. After you have used the action, subsequent steps in the same job can run Terraform commands using the GitHub Actions run syntax. | Automate Terraform with GitHub Actions |
Security and Compliance
Name | Maintainer | Description | Tutorial |
---|---|---|---|
Splunk and HCP Terraform | HashiCorp | Pull audit logs from HCP Terraform into Splunk to identify the most active policies, understand significant changes in resource operations, and filter actions by specific users within your organization. | |
Sentinel | HashiCorp | Write and enforce fine-grained, logic-based policies for your infrastructure. Sentinel is an embedded policy-as-code framework integrated with the HashiCorp Enterprise products. | Enforce Policy with Sentinel |
Develop Terraform Providers
Name | Maintainer | Description | Tutorial |
---|---|---|---|
Plugin Framework | HashiCorp | A new SDK to develop your own Terraform providers. The framework provides improvements and additional features beyond what is available in the Plugin SDK. | Implement a Provider with the Terraform Plugin Framework |
terraform-plugin-testing | HashiCorp | is a module for testing Terraform providers using real configurations to simulate the plan, apply, refresh, and destroy life cycles. | |
terraform-plugin-mux | HashiCorp | Combine providers built using different SDKs and frameworks. This lets you upgrade between SDKs or frameworks on a resource-by-resource basis instead of all at once. | |
terraform-plugin-log | HashiCorp | Attach context and information to logs and use multiple loggers to filter log output. | |
ghaction-terraform-provider-release | HashiCorp | GitHub Action Workflows for releasing Terraform Providers to the public Registry. |
HashiCorp Products
You can use HashiCorp products together to enable self-service automation across teams and organizations.
Name | Maintainer | Description | Tutorial |
---|---|---|---|
HashiCorp Cloud Platform (HCP) Provider | HashiCorp | Launch and run HashiCorp products as managed services that will be deployed into HashiCorp Virtual Networks (HVNs) and connected to your infrastructure resources. | |
Vault provider | HashiCorp | Vault lets you secure, store, and tightly control access to tokens, passwords, certificates, encryption keys, and other sensitive data. Use this provider to read from, write to, and configure Vault. | Inject Secrets into Terraform Using the Vault Provider |
Consul Provider | HashiCorp | Consul provides service-based networking for dynamic infrastructure. Use this provider to add external services to Consul, work with the key/value store, and more, using Terraform. | Use Terraform to Register External Services |
HashiCorp Consul Service (HCS) | HashiCorp | Provision HashiCorp-managed Consul clusters directly through the Azure Marketplace. | |
HCP Packer registry | HashiCorp | Packer lets you create identical machine images for multiple platforms from a single source template. Use the registry to track golden images, designate images for test and production environments, and query images to use in both Packer and Terraform configurations. | Push Image Metadata to the HCP Packer Registry |
Boundary Provider | HashiCorp | Boundary is an intelligent proxy that creates granular, identity-based access controls for dynamic infrastructure. Use this provider to manage Boundary access controls for resources provisioned with Terraform. | |
Nomad AWS Module | Third Party | Nomad is a distributed, highly-available, data-center aware scheduler. Use Terraform to deploy a Nomad cluster on Amazon Web Services (AWS). |