Skip to main content
Presentation

Reaching 3M downloads and 90%+ unit test coverage for a Terraform provider: lessons learned

This will be a story of building and growing a Databricks Terraform Provider over the course of two years, as well as tactics, techniques and procedures that allowed it to achieve millions of installations. This talk will be useful for every Terraform Provider maintainer, as well as those who are planning to write one. Approximate outline of the talk: - Who am I and what i’m doing (~1:00) - Data-driven overview of Terraform ecosystem with thousands of integrations (~2:00) - How does Terraform Plugin work inside in terms of GoLang code? (~3:00) - Where a tiny bit of reflection won’t actually hurt and can save 50%-60% of boilerplate code? (~1:00) - The story of the custom overlay on top of Terraform SDK to enable rapid growth of provider with new features. (~5:00) - How to write a custom HCL code generator from an existing remote infrastructure and how does it help to prepare for disaster recovery? (~5:00) - What are some good opinionated practical applications of context.WithValue? (~2:00) - HTTP Fixture Framework: innovative and opinionated way for rapid writing of unit tests (~4:00) - Where 90%+ unit test coverage is not enough and how to scale integration testing (~2:00) - GitHub dependabot: risks and rewards of automated dependency tracking (~2:00) - Other random facts how OSS maintainer can drive adoption (~1:00)

This will be a story of building and growing a Databricks Terraform Provider over the course of two years, as well as tactics, techniques and procedures that allowed it to achieve millions of installations. This talk will be useful for every Terraform Provider maintainer, as well as those who are planning to write one. 

Approximate outline of the talk: 

- Who am I and what i’m doing (~1:00) 
- Data-driven overview of Terraform ecosystem with thousands of integrations (~2:00) 
- How does Terraform Plugin work inside in terms of GoLang code? (~3:00) 
- Where a tiny bit of reflection won’t actually hurt and can save 50%-60% of boilerplate code? (~1:00) 
- The story of the custom overlay on top of Terraform SDK to enable rapid growth of provider with new features. (~5:00) 
- How to write a custom HCL code generator from an existing remote infrastructure and how does it help to prepare for disaster recovery? (~5:00) 
- What are some good opinionated practical applications of context.WithValue? (~2:00) 
- HTTP Fixture Framework: innovative and opinionated way for rapid writing of unit tests (~4:00) 
- Where 90%+ unit test coverage is not enough and how to scale integration testing (~2:00) 
- GitHub dependabot: risks and rewards of automated dependency tracking (~2:00) 
- Other random facts how OSS maintainer can drive adoption (~1:00)

More resources like this one

  • 3/15/2023
  • Presentation
Advanced Terraform techniques
  • 2/3/2023
  • Case Study
Automating Multi-Cloud, Multi-Region Vault for Teams and Landing Zones
  • 2/1/2023
  • Case Study
Should My Team Really Need to Know Terraform?
  • 1/20/2023
  • Case Study
Packaging security in Terraform modules