Terraform Concepts: Difference between revisions
(→AWS) |
|||
Line 25: | Line 25: | ||
===AWS=== | ===AWS=== | ||
{{Internal|Terraform AWS Provider|AWS}} | {{Internal|Terraform AWS Provider|AWS}} | ||
===Kubernetes=== | |||
{{External|https://www.terraform.io/docs/providers/kubernetes/index.html}} | |||
===Helm=== | |||
{{External|https://www.terraform.io/docs/providers/helm/index.html}} | |||
=Resource= | =Resource= | ||
=Workflow= | =Workflow= |
Revision as of 21:26, 13 November 2019
Internal
Overview
Terraform is a tool for building, changing and managing infrastructure, as code. It uses a configuration language named Hashicorp Configuration Language (HCL). Terraform is platform agnostic, and achieves that by using different provider APIs for resource provisioning, via plug-ins. A heterogenous environment can be managed with the same workflow.
Hashicorp Configuration Language (HCL)
HCL is human-readable. Configuration can also be JSON, but JSON is only recommended when the configuration is generated by a machine. Internally, the declarative language that drives provider API for resource provisioning.
Provider
A provider is responsible for creating and managing resources. Terraform uses provider plug-ins to translate its configuration into API instructions for the provider. In a configuration file, a provider is specified in a "provider" block. Multiple provider blocks can exist in a Terraform configuration file.
Configured in the “provider” block.
Provider Plug-In
Provider-specific resources are managed with provider plugins. Each provider plugin is a an encapsulated binary, distributed separated by Terraform. They are downloaded by terraform init and stored in a subdirectory of the current working directory.