Hi
@Aaron Williams, I investigated the development of an Airbyte terraform provider. I soon hit the problem of declaring terraform resources for each kind of source / destination we have. According to my research the current terraform SDK requires to hardcode the schema of each resource. And this is quite hard to accomplish considering the wide diversity of connectors configuration schema (basically the schema of the connectionConfiguration in our API for source / destination endpoint). The solution to tackle this problem could be to leverage the Dynamic Pseudo Type of terraform, which is was not available in the main terraform SDK at the time of my research. Kubernetes SRDs leverage this type using
Terraform-plugin-go, this plugin would make the development of the provider a bit complex and lower level, this is why we decided to not jump into this right now. If you have an alternative solution/approach to the problem I mentioned, feel free to start developing a terraform provider from a fork of our monorepo and open PRs whenever you like. We're also open to further discussions on this topic on Discourse, in our
Product Feedback and Ideas forum.
I can't finish this message without mentionning that we're soon releasing a CLI for Airbyte that will help you manage Airbyte configuration in a declarative manner, with YAML file. Feel free to checkout the progress on this project on
#public-octavia-cli