I have three GCP projects let's say project-01, project-02 and project-03 and I'm trying to create Compute Instance in those respective projects using single terraform module. Below is the terraform.tfvars file
compute_instances = {
compute_instance_01 = {
project_id = "project-01"
instance_name = "instance_01"
zone = "asia-south1-a"
machine_type = "e2-small"
}
compute_instance_02 = {
project_id = "project-02"
instance_name = "instance_02"
zone = "asia-south1-a"
machine_type = "e2-medium"
}
compute_instance_03 = {
project_id = "project-03"
instance_name = "instance_03"
zone = "asia-south1-a"
machine_type = "e2-large"
}
}
How do I keep terraform state file in remote GCS bucket in their respective projects in single backends.tf file ?
Not sure I understand correctly what you would like to achieve ultimately, and I guess it might not be possible to get that 100% accurately, but something can be done.
From the best of my understanding, one can define a Terraform state file location running the
terraform initcommand.For example:
Under assumption, that the
backend.tffile looks like:So, while it might not be possible to create many terraform state files from one
terraform init/applycommand set, it may be possible toinitis executed, the correct state file location is chosen; and when theapplyis executed, the correct resource names are calculated.Let me know if you would like further hints on how to achieve the later, or the above information is enough.