I Can't Do This With Terraform, Now What?
Learn how to modify providers when Terraform hasn't gotten support yet for a particular cutting-edge cloud feature.
Terraform is the best-in-breed infrastructure as code(IaC) tool, but sometimes you want to implement cutting-edge cloud features that the official providers just don't support. So what do you do? Do you have to resort to falling back on native IaC tooling, or can you find a way to work around the limitation without turning your project into a ball of hacks? And is modifying a provider yourself really that hard?
What You'll Learn
This talk sets out guidance for dealing with the situations automation engineers face all the time, with a focus on Azure as the cloud provider. The speaker's motivation is to deliver the right functionality for the client without compromising on maintainability.
Agenda Items
- Terraform provider feature coverage (vs cloud provider's API)
- Analysis of resources and properties exposed
- Options for dealing with gaps in Terraform provider coverage
- Patching a Terraform provider without being a Golang dev
- Running Terraform in Docker, handling custom providers with ease
- Making local-exec workarounds less... inelegant
- Dependent null_resources
- Shell provider modules in lieu of actual resources
- Wrapping ARM templates in Terraform: why and how
- Roadmap towards greater feature coverage
GitHub Repo
You can find the GitHub repository for this talk here.
Slides
The slides for this talk are available in this Google Presentation.