Project Structure for Terraform Provider

Summary

Suggesting a project structure for a Terraform provider project.


Question

Hi everyone, I am starting a new project with a Terraform provider. Can you please suggest a structure for the project?



This topic has been created from a Slack thread to give it more visibility.
It will be on Read-Only mode here. Click here if you want to access the original thread.

Join the conversation on Slack

["project-structure", "terraform-provider", "new-project"]

Not specific to AirByte, but HashiCorp has some guidance on terraform project layout that is worth looking into:
https://developer.hashicorp.com/well-architected-framework/operational-excellence/operational-excellence-workspaces-projects
https://www.hashicorp.com/blog/structuring-hashicorp-terraform-configuration-for-production
Personally, I prefer to create a folder per environment + region so that they can be upgraded independently and the blast radius of a bad change is limited. I know folks like to be DRY, but I’ve found that mode of working to cause more problems than its solves - embrace copy/paste until you have enough experience to extract a module you can share.