I'm one of the team of people working on Terraform, an open source project (commercially backed by Hashicorp, my employer) that provides a declarative machine language for describing the configuration of and relationships between resources in various APIs used for application deployment, infrastructure-as-a-service, etc, and a command line tool for creating or updating real resources to match the declared configuration.
The project has its own real-time chat and mailing lists which we promote as community forums for general Q&A. However, a while ago we noticed that users had started asking Terraform questions on various Stack Exchange sites, currently with a relatively-low volume but apparently growing, and I began voting/commenting on answers and, in some cases, actually answering questions.
Organically, questions seem to be asked most commonly on Stack Overflow, but across the three sites that currently have a tag for Terraform the all-time question totals are (as of this writing):
I have some concerns about the bias towards Stack Overflow given the similarity in theme between Terraform and other software like Chef and Puppet that are often considered off-topic for that site. I did some manual analysis of the questions being asked across all three sites and they seemed to fall into a few different categories:
- Usage questions: How to install and invoke Terraform, what its command line options do, etc. Example
- Language/featureset questions: How to express certain things in Terraform's configuration language, agnostic of any particular backend system. Example
- How to achieve a particular result with Terraform: User perhaps already knows how to achieve something some other way and wants to know how to express it within Terraform's language. Example
- Terraform only incidentally involved: Questions about third-party systems that are not really Terraform-specific, but the asker happens to be using Terraform and/or wants a solution expressed in terms of Terraform. Example
Currently we're providing no specific guidance to the community about where to ask questions outside of the aforementioned chat and mailing list, but we'd like to be good citizens in the Stack Exchange community by trying to steer questions into the place where they would be most welcome. Since Terraform sits at the intersection of a few different areas I think there is no single site appropriate for all questions. My instinct for the ideal place for such questions is (using the same numbering as above):
Either Server Fault or Super User depending on whether Terraform is being used in a professional setting. (the latter currently lacks a Terraform tag, and has never been used for Terraform questions as far as I can tell.)
Stack Overflow, since questions about e.g. how to iterate over a list or format values in Terraform's language are similar to those same questions in other languages, with the primary difference being the specific syntax and idiom. For example, I presume Stack Overflow would be an appropriate place to ask about Ruby language features used in the context of Chef.
Wherever one would've asked the question if Terraform weren't being used, which I think would most likely be Server Fault since Terraform is usually used in provisioning and configuring compute, storage and network infrastructure in a professional setting.
Not really a matter for this question, since such problems are not directly addressing Terraform anyway.
Honestly I'm not sure to what extent the Terraform user community can be steered in a particular direction by us, and indeed I'd rather not steer someone to a place where nobody knowledgeable will answer their question, but I'd be curious as to how the Stack Exchange community thinks we should proceed here.