Closed
Description
Given:
The following main.tf
:
provider "foo" {}
resource "foo_bar" "baz" {}
variable "region" {
type = string
default = "us"
}
variable "az" {
type = string
default = "a"
}
data "base" "ours" {
all = true
}
data "coder_parameter" "az" {
name = "az"
type = "string"
default = var.az
}
data "coder_workspace_tags" "tags" {
tags = {
"platform" = "kubernetes",
"cluster" = "${"devel"}${"opers"}"
"region" = var.region
"az" = data.coder_parameter.az.value
}
}
When:
provisioner/terraform/tfparse.WorkspaceTagDefaults
extracts workspace tags from the above
Then:
Expected:
{"platform": "kubernetes", "cluster": "developers", "region": "us", "az": "a"}
Actual:
{"platform":"kubernetes", "cluster":"developers", "region":"us", "az":"var.az"}
Notes:
A similar issue can also be observed with an "evaluated" default value, e.g.:
provider "foo" {}
resource "foo_bar" "baz" {}
variable "region" {
type = string
default = "us"
}
data "base" "ours" {
all = true
}
data "coder_parameter" "az" {
name = "az"
type = "string"
default = "${""}${"a"}"
}
data "coder_workspace_tags" "tags" {
tags = {
"platform" = "kubernetes",
"cluster" = "${"devel"}${"opers"}"
"region" = var.region
"az" = data.coder_parameter.az.value
}
}
In this case, we get the raw value ${""}${"a"}
instead of the expected value a
.