OpenTofu lets you declaratively manage your cloud infrastructure.
Go to file
2020-01-07 13:46:33 -08:00
.github Update .github/SECURITY.md 2019-12-02 13:07:02 +00:00
addrs configs: move ProviderConfigCompact[Str] from addrs to configs 2019-12-09 08:30:08 -05:00
backend Merge pull request #23656 from hashicorp/paddy_gcs_backend_env_var 2019-12-17 07:30:41 -05:00
builtin providers: use addrs.Provider as map keys for provider.Factory (#23548) 2019-12-04 11:30:20 -05:00
command command: use backend config from state when backend=false is used. (#23802) 2020-01-07 15:07:06 -05:00
communicator ssh: Fix deadlock on agent forwarding error 2019-12-12 18:16:17 +01:00
config
configs configs: use local set of go-getter detectors 2020-01-07 09:38:46 -08:00
contrib
dag
digraph
docs
e2e
examples
experiments experiments: a mechanism for opt-in experimental language features 2019-12-10 09:27:05 -08:00
flatmap
helper addrs: replace "Type string" with "Type Provider" in ProviderConfig 2019-12-06 08:00:18 -05:00
httpclient
internal initwd: cache registry responses for module versions and download URL (#23727) 2020-01-07 15:03:23 -05:00
lang
moduledeps
plans addrs: replace "Type string" with "Type Provider" in ProviderConfig 2019-12-06 08:00:18 -05:00
plugin use LegacyString() consistently 2019-12-09 11:34:36 -05:00
providers addrs: replace "Type string" with "Type Provider" in ProviderConfig 2019-12-06 08:00:18 -05:00
provisioners
registry
repl addrs: replace "Type string" with "Type Provider" in ProviderConfig 2019-12-06 08:00:18 -05:00
scripts
state
states configs: move ProviderConfigCompact[Str] from addrs to configs 2019-12-09 08:30:08 -05:00
terraform core: Don't panic if EvalMaybeResourceDeposedObject has no DeposedKey 2020-01-06 10:22:51 -08:00
tfdiags command: New -compact-warnings option 2019-12-10 11:53:14 -08:00
tools terraform-bundle: fix panic with addrs.Provider 2019-12-12 09:14:38 -05:00
vendor vendor: go get github.com/hashicorp/hcl/v2@v2.2.0 2019-12-12 10:36:23 -08:00
version Cleanup after v0.12.18 release 2019-12-11 16:29:59 +00:00
website docs: terraform state show is not machine-readable 2020-01-07 09:39:20 -08:00
.gitignore
.go-version
.hashibot.hcl
.tfdev
.travis.yml
BUILDING.md
CHANGELOG.md Update CHANGELOG.md 2020-01-07 13:46:33 -08:00
checkpoint.go
CODEOWNERS
commands.go
config.go
Dockerfile
go.mod vendor: go get github.com/hashicorp/hcl/v2@v2.2.0 2019-12-12 10:36:23 -08:00
go.sum vendor: go get github.com/hashicorp/hcl/v2@v2.2.0 2019-12-12 10:36:23 -08:00
help.go
LICENSE
main_test.go
main.go
Makefile build: add terraform-bundle e2etests 2019-12-12 09:26:26 -05:00
panic.go
plugins.go
README.md
signal_unix.go
signal_windows.go
synchronized_writers.go
version.go

Terraform

Terraform

Terraform is a tool for building, changing, and versioning infrastructure safely and efficiently. Terraform can manage existing and popular service providers as well as custom in-house solutions.

The key features of Terraform are:

  • Infrastructure as Code: Infrastructure is described using a high-level configuration syntax. This allows a blueprint of your datacenter to be versioned and treated as you would any other code. Additionally, infrastructure can be shared and re-used.

  • Execution Plans: Terraform has a "planning" step where it generates an execution plan. The execution plan shows what Terraform will do when you call apply. This lets you avoid any surprises when Terraform manipulates infrastructure.

  • Resource Graph: Terraform builds a graph of all your resources, and parallelizes the creation and modification of any non-dependent resources. Because of this, Terraform builds infrastructure as efficiently as possible, and operators get insight into dependencies in their infrastructure.

  • Change Automation: Complex changesets can be applied to your infrastructure with minimal human interaction. With the previously mentioned execution plan and resource graph, you know exactly what Terraform will change and in what order, avoiding many possible human errors.

For more information, see the introduction section of the Terraform website.

Getting Started & Documentation

If you're new to Terraform and want to get started creating infrastructure, please checkout our Getting Started guide, available on the Terraform website.

All documentation is available on the Terraform website:

Developing Terraform

This repository contains only Terraform core, which includes the command line interface and the main graph engine. Providers are implemented as plugins that each have their own repository in the terraform-providers organization on GitHub. Instructions for developing each provider are in the associated README file. For more information, see the provider development overview.

To learn more about compiling Terraform and contributing suggested changes, please refer to the contributing guide.

License

Mozilla Public License v2.0