infrastructure - Terraform terraform_remote_state Partial Configuration -


my team relies heavily on s3 remote state within terraform. use -backend-config feature of cli specify s3 configuration when initializing projects, our actual terraform code looks like:

terraform {   backend "s3" {} } 

the above works great long s3 attributes specified on cli -backend-config.

we use similar strategy referencing these states elsewhere in our configurations. since parameters backend dynamic , specified on cli, looking same.

data "terraform_remote_state" "dns" {   backend = "s3"   config {     key = "configurations/production/dns/terraform.tfstate"   } } 

in above example, we've omitted required region , bucket parameters, of course causes plan/apply fail (with not valid region:).

is there method can specify region , bucket remote state references cli instead of hard-coding them?

the backend block rather special because gets processed in terraform's workflow, , doesn't have access normal terraform features such variables. that's why has own special mechanism configuring it.

the terraform_remote_state data source, on other hand, regular data source , normal interpolation strategy can used it. pass settings cli, example, use variables:

variable "dns_state_region" { }  variable "dns_state_key" { }  data "terraform_remote_state" "dns" {   backend = "s3"   config {     region = "${var.dns_state_region}"     key    = "${var.dns_state_key}"   } } 

you can pass these terraform plan command:

$ terraform plan \     -var="dns_state_region=us-west-1" \     -var="dns_state_key=configurations/production/dns/terraform.tfstate" 

Comments

Popular posts from this blog

android - InAppBilling registering BroadcastReceiver in AndroidManifest -

python Tkinter Capturing keyboard events save as one single string -

sql server - Why does Linq-to-SQL add unnecessary COUNT()? -