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)