Summary
In this chapter, we looked in depth at the utility providers that HashiCorp has built to help us augment our IaC solutions. We learned how to integrate with external systems, work with assets stored on the filesystem, and randomize and fill in whitespace within Terraform. These Terraform providers are incredibly versatile, and as you explore them more, you will find them more and more valuable.
As you would when using other providers, always reference the provider in your required_providers
block with an explicit version number. Do not implicitly take the latest. Other than that, resources from these providers can be embedded in any Terraform module. Take special care when designing reusable modules to ensure you have minimal provider requirements on upstream client modules, as this can add additional complexity to users who hope to reuse your module when it requires a dozen different providers to be declared!
In the next chapter, we will establish some architectural...