HashiCorp Configuration Language (HCL) is a domain-specific language for declaring the desired state of infrastructure and services. Terraform uses HCL configuration files to define resources rather than prescribing step-by-step procedures. section 25.3 section 25.2.2
HCL participates in Terraform’s three-stage workflow:
- Write configuration files that describe the desired infrastructure state. section 25.2.2
- Plan the changes so the proposed infrastructure modifications can be verified before execution. section 25.2.2
- Apply the plan so Terraform can provision or manage resources and reconcile them with the Terraform state file. section 25.2.2
Terraform Core processes HCL, compares the declared end state with recorded infrastructure state, and communicates through providers’ APIs. Supported targets include public clouds, on-premises platforms, and Kubernetes. section 25.2.2
Figure 25.6 Provisioning resources with Terraform. Configuration files are processed byTerraform Core to interact with various providers (i.e., public cloud providers) and manage infrastructure resources while maintaining state information in the state file.
The provisioning flow connects HCL configuration files with Terraform Core, providers, managed resources, and state information. section 25.2.2


