Terraform can manage existing and popular service providers, such as AWS, as well as custom in-house solutions.
It uses configuration files to describe the components necessary to run a single application or your entire datacenter. It generates an execution plan describing what will happen to reach the desired state, and afterwards executes it to build the desired infrastructure. As the configuration changes, Terraform is able to determine the changes and create incremental execution plans which can be applied.
The infrastructure Terraform can manage includes low-level components such as compute instances, storage, and networking, as well as high-level components such as DNS (Domain Name Service) entries, SaaS (Software as a Service) features.
Consul is a distributed, highly available, and data center aware solution to connect and configure applications across dynamic, distributed infrastructure
Define infrastructure resources using programming constructs and provision them using HashiCorp Terraform
A tool for secrets management, encryption as a service, and privileged access management
Terraform Plugin SDK enables building plugins (providers) to manage any service providers or custom in-house solutions
Template rendering, notifier, and supervisor for @HashiCorp Consul and Vault data
A helper library for shallow inspection of Terraform configurations
Utility provider that works with Transport Layer Security keys and certificates