Configure Consul-Terraform-Sync
A task captures a network automation process by defining which network resources to update on a given condition. Configure Consul-Terraform-Sync with one or more tasks that contain a list of Consul services, a Terraform module, and various Terraform providers.
Within the task block, the list of services for a task represents the service layer that drives network automation. The is the discovery location of the Terraform module that defines the network automation process for the task. The condition
, not shown below, defaults to the services condition when unconfigured such that network resources are updated on changes to the list of services over time.
Configuring Terraform providers within Consul-Terraform-Sync requires 2 config components. The first component is required within the . All providers configured for Consul-Terraform-Sync must be listed within the stanza to satisfy a Terraform v0.13+ requirement for Terraform to discover and install them. The providers listed are later organized by Consul-Terraform-Sync to be included in the appropriate Terraform configuration files for each task.
The second component for configuring a provider is the . This block resembles provider blocks for Terraform configuration and has the same responsibility for understanding API interactions and exposing resources for a specific infrastructure platform.
Piecing it all together, the configuration file for Consul-Terraform-Sync will have several HCL blocks in addition to other options for configuring the Consul-Terraform-Sync daemon: , driver.terraform
, and terraform_provider
blocks.
An example HCL configuration file is shown below to automate one task to execute a Terraform module on the condition when there are changes to two services.
cts-example-config.hcl