Warm tip: This article is reproduced from stackoverflow.com, please click
backend devops directory terraform structure

What is the correct way to setup multiple logically organized sub folders in a terraform repo?

发布于 2020-04-13 10:30:44

Currently I am working on a infrastructure in azure that comprises of the following:

  • resource group
  • application gateway
  • app service
  • etc

everything I have is in one single main.tf file which I know was a mistake however I wanted to start from there. I am currently trying to move each section into its own sub folder in my repo. Which would look something like this:

terraform-repo/
├── applicationGateway/
│   ├── main.tf
│   ├── vars.tf
├── appService/
│   ├── main.tf
│   └── vars.tf
├── main.tf
└── vars.tfvars

However when I create this while trying to move over from the single file structure I get issues with my remote state where it wants to delete anything that isn't a part of the currently worked on sub folder. For example if I wanted to run terraform apply applicationGateway I will get the following:

  # azurerm_virtual_network.prd_vn will be destroyed

Plan: 0 to add, 2 to change, 9 to destroy.

What is the correct way to setup multiple logically organized sub folders in a terraform repo? Or do I have to destroy my current environment to get it to be setup like this ?

Questioner
Pablo Marti Cordero
Viewed
51
Mark B 2020-02-04 00:58

You are seeing this issue because terraform ignores subfolders, so those resources are not being included at all anymore. You would need to configure the subfolders to be Terraform Modules, and then include those modules in your root main.tf