Skip to content
Terraform enables you to safely and predictably create, change, and improve infrastructure. It is an open source tool that codifies APIs into declarative configuration files that can be shared amongst team members, treated as code, edited, reviewed, and versioned.
Go Other
  1. Go 98.9%
  2. Other 1.1%
Branch: master
Clone or download

Latest commit

Latest commit 5d0b75d May 26, 2020

Files

Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.circleci Only notify Slack on job failure Apr 22, 2020
.github Fix typo in CONTRIBUTING.md Apr 14, 2020
addrs configs: require normalized provider local names (#24945) May 14, 2020
backend Update azure backend storage sdk (#24669) May 20, 2020
builtin Merge pull request #19155 from bdwyertech/chef-exit-codes May 12, 2020
command Merge pull request #25013 from hashicorp/alisdair/ui-data-source-read May 26, 2020
communicator Make sure the WinRM communicator can reconnect May 5, 2020
config Move the commit along with Mar 2, 2020
configs configs: require normalized provider local names (#24945) May 14, 2020
contrib contrib: Remove api-coverage tool Oct 18, 2019
dag remove excess logging from dag Apr 8, 2020
digraph Fix TestWriteDot random order error Jul 29, 2014
docs docs: Fix typo in maintainer-etiquette (#24609) Apr 10, 2020
e2e tools/terraform-bundle: refactor to use new provider installer and pr… Apr 21, 2020
examples Fix Google Cloud Platform name across docs. Jan 15, 2019
experiments config: Allow module authors to specify validation rules for variables Jan 10, 2020
flatmap prune references to config/module Aug 7, 2019
helper remove depends_on from helper test shims May 14, 2020
httpclient Merge pull request #22272 from hashicorp/f-httpclient-ua Aug 12, 2019
instances Expander.ExpandResource cannot expand all modules Mar 25, 2020
internal command/init: Use full config for provider reqs May 25, 2020
lang Merge pull request #24484 from ctjhoa/fix_typo May 4, 2020
moduledeps rename provider-specific functions (#24417) Mar 20, 2020
plans Merge pull request #24904 from hashicorp/jbardin/plan-data-sources May 20, 2020
plugin Add support for provider metadata to modules. (#22583) Mar 6, 2020
providers Remove terraform.ResourceProvider, use providercache.Installer instead Apr 6, 2020
provisioners provisioners: Add Factory type and FactoryFixed helper Oct 17, 2018
registry registry: Fix panic when server is unreachable Mar 19, 2020
repl fix error output in repl test Apr 14, 2020
scripts remove travis script file Apr 6, 2020
state Add support for force pushing with the remote backend May 6, 2020
states add omitempty to create_before_destroy May 18, 2020
terraform Merge pull request #24904 from hashicorp/jbardin/plan-data-sources May 20, 2020
tfdiags tfdiags: Diagnostics.ToHCL Mar 12, 2020
tools tools/terraform-bundle: refactor to use new provider installer and pr… Apr 21, 2020
vendor Update azure backend storage sdk (#24669) May 20, 2020
version Update version.go Feb 19, 2020
website Merge pull request #23989 from tatsuo48/fix_sample_code May 21, 2020
.gitignore Coverage Mar 3, 2020
.go-version Update azure backend storage sdk (#24669) May 20, 2020
.hashibot.hcl Remove hashibot panic issue labeler May 13, 2020
.tfdev .tfdev: remove platform build constraint Aug 9, 2019
BUILDING.md Edit BUILDING.md Nov 17, 2019
CHANGELOG.md updating to include #24669 May 20, 2020
CODEOWNERS Change my username. Apr 18, 2020
Dockerfile build: Don't create apk cache in "full" docker image Nov 12, 2019
LICENSE Adding license Jul 28, 2014
Makefile Coverage updates, roll back makefile change, use travis specific script Mar 3, 2020
README.md Added links to Learn and certification exams to the README Mar 27, 2020
checkpoint.go Remove config.go and update things using its aliases Jan 13, 2020
codecov.yml Set Codecov threshold to 0.05% to avoid flicker Mar 9, 2020
commands.go command: Add state replace-provider subcommand Apr 2, 2020
go.mod Update azure backend storage sdk (#24669) May 20, 2020
go.sum Update azure backend storage sdk (#24669) May 20, 2020
help.go help: Make version and help flags consistent Aug 1, 2018
main.go fixup main.go comment about providersource Apr 23, 2020
main_test.go main: make configuration available when initializing commands Sep 29, 2017
panic.go main: Warn about potential sensitive information in logs when panicking Nov 6, 2019
plugins.go Remove config.go and update things using its aliases Jan 13, 2020
provider_source.go main: Properly handle provider installation method exclusions Apr 23, 2020
signal_unix.go Forward SIGTERM and handle that as an interrupt Dec 8, 2016
signal_windows.go Forward SIGTERM and handle that as an interrupt Dec 8, 2016
synchronized_writers.go main: synchronize writes to VT100-faker on Windows May 4, 2017
version.go states/statemgr: Fix the Filesystem state manager tests Nov 19, 2018

README.md

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

Documentation is available on the Terraform website:

If you're new to Terraform and want to get started creating infrastructure, please check out our Getting Started guides on HashiCorp's learning platform. There are also additional guides to continue your learning.

Show off your Terraform knowledge by passing a certification exam. Visit the certification page for information about exams and find study materials on HashiCorp's learning platform.

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

You can’t perform that action at this time.