swetank soni
swetank soni

Reputation: 29

Can I Pass Terraform output / resources.id values into any variable present in variable.tf file?

I need to have "client_secret" output value as an input for "tenant_app_password"

variables.tf

variable "tenant_app_password" {
  description = ""
}

Create-service-principal.tf

resource "random_string" "password" {
  length  = 32
  special = true
}

# Create Service Principal Password
 resource "azuread_service_principal_password" "test_sp_pwd" {
 service_principal_id =  azuread_service_principal.test_sp.id
 value                = random_string.password.result
 end_date       = "2020-01-12T07:10:53+00:00" 
}

OUTPUT

output "client_secret" {
  value     = "${azuread_service_principal_password.wvd_sp_pwd.value}"
  sensitive = true
}

Is we have any possible way ???

Upvotes: 0

Views: 1843

Answers (1)

Rutger de Knijf
Rutger de Knijf

Reputation: 1182

I'm assuming you want to use the output of one Terraform run in another one. You can do this by using a remote state datasource provider.

You cannot put the original output in a variable, but you can use the remote output as a variable directly in another template. For example, in your second template:

// set up the remote state data source

data "terraform_remote_state" "foo" {
  backend = "s3"

  config = {
    bucket  = "<your bucket name>"
    key     = "<your statefile name.tfstate"
    region  = "<your region>"
  }
}


// use it 

resource "kubernetes_secret" "bar" {
  metadata {
    name = "bar"
  }

  data = {
    client_secret = data.terraform_remote_state.foo.outputs.client_secret
  }

}

Also check out this question.

Upvotes: 1

Related Questions