Untitled

 avatar
unknown
plain_text
12 days ago
1.2 kB
2
Indexable
## Terraform Basics
- Terraform is written in HCL - HashiCorp Configuration Language and is designed to be both human and machine readable. HCL is built using code configuration blocks.
## Plug-in Based Architecture
- Terraform is built on a plugin-based architecture, enabling developers to extend Terraform by writing new plugins or compiling modified versions of existing plugins.
- Terraform is split into two main parts: 
	- Terrafom Core: 
		- A statically-compiled binary (Terraform CLI tool) written in Go.  
		- Uses RPC to communicate with Terraform Plugins and offers multiple ways to discover and load plugins to use.
	- Terraform Plugin: 
		- Written in Go and are executable binaries invoked by Terraform Core over RPC.
		- Each plugin exposes an implementation for a specific service such as AWS or provisioner such as bash.
- Discovery:
	- When `terraform init` is run, Terraform reads configuration files in the working directory to determine which plugins are necessary, searches for installed plugins in several locations, sometimes downloads additional plugins, decides which plugin versions to use and writes a lock file to ensure Terraform will use the same versions in this directory until `terraform init` runs again.
    
Editor is loading...
Leave a Comment