Hello! Welcome to the Terraform community forum.
There are a few different categories in this forum and choosing the most relevant category will increase the chance that you’ll reach someone who is familiar with what you are asking:
- Terraform Language and Terraform CLI
- Terraform Cloud and Terraform Enterprise
- Using Terraform Providers: if your question is about how to achieve something on a specific cloud platform, rather than a general question about Terraform, this category or one of its subcategories is the best place to find folks who are familiar with your chosen platform.
- CDK for Terraform
- Terraform Provider Development: if you’re writing a new provider for Terraform.
- Terraform Language Server and the Visual Studio Code Extension
This forum is primarily for folks in the Terraform community to help one another by sharing their experiences, although some Terraform team members do sometimes also contribute here.
If you are a Terraform Cloud or Terraform Enterprise user and you have a problem that is specific to how you’ve configured your account or workspace, we recommend contacting HashiCorp Support instead of posting in this forum, because the support team can offer personalized guidance. This forum works better for broad and general questions that might be applicable to lots of different people.
The most common problem for folks asking questions in this forum is not sharing enough information. If other participants can’t see clearly what you are intending to achieve, what you’ve tried already, and how Terraform behaved when you tried it then they are less likely to try to help.
The best questions in this forum follow the following format:
Describe clearly and thoroughly what your original goal is.
By the time you’re asking the question you might be several steps away from your original goal, now focused on a particular solution you’ve identified. But the solution you’ve already chosen might not actually be the most appropriate, so it’s better to state the overall problem you are trying to solve.
(For more information on the common mistake of asking about the wrong problem, see XY Problem.)
Show what you tried already.
For best results, reduce your code down to the smallest example that still shows the problem and then share that entire example. It can be tempting to leave things out that don’t seem relevant, but often folks leave out too much and so make their question hard or impossible to answer.
If you do include only a subset of the code you wrote and the commands you ran, make sure that the subset you shared can be used to reproduce the same behavior you saw, rather than raising some other unrelated error.
Relatedly, when you include code in the forum you must use code block fences ``` to delimit it so that the forum will render it properly. The
<>icon in the editor toolbar, labelled “Preformatted Text” and with the keyboard shortcut Ctrl+E, can create the needed fences around the selected text automatically. Don’t just paste code into the box without fencing it, and please don’t share screenshots of code because it’s much harder for a potential contributor to copy your code locally in order to test it.
Show the entire output from Terraform
Experienced Terraform users can infer a lot of context from Terraform’s detailed output, so if you include the whole output it’s more likely that a reader will be able to identify exactly what went wrong without asking any further questions.
In particular, if you have a question about why Terraform is planning a particular action – for example, why it’s proposing to destroy an object – it’s important to show exactly what plan output Terraform generated in full. Often the plan for one resource depends on the plan for another, so it’s important to show the entire plan even if your question is only about one resource.
If you saw an error message, it’s important to include the entire error message exactly as Terraform presented it. Do not summarize the error message or exclude parts of it that don’t seem relevant. And definitely don’t just say “it failed” or “it returned an error” without saying anything about what the error message was.
If you follow the above structure and share all of the information you have available then it’s far more likely that someone will engage with your topic and offer a potential solution.