Terraform-遍历数据源并创建地图,将此地图传递给模块

时间:2019-03-12 10:17:59

标签: terraform terraform-provider-azure

我想用secrets列表遍历grafana-secrets数据源。 此输出应在模块内部映射为env_secrets。 现在,模块将将此映射用作vars = {}(即使它为空,也就是其通用模块),并将使用模板文件。

这是我的 NONWORKING 用例,仅供参考:

variable "grafana-secrets" {
  type = "list"

  default = ["GF_DATABASE_USER","GF_AUTH_GENERIC_OAUTH_CLIENT_SECRET","GF_SESSION_PROVIDER_CONFIG"]
}

data "azurerm_key_vault_secret" "secrets" {
  count     = "${length(var.grafana-secrets)}"
  name      = "${element(var.grafana-secrets, count.index)}"
  vault_uri = "https://foobar.vault.azure.net/"
}

module "grafana" {
   source = "modules/deployment"

   env_secrets = {
     "${element(var.grafana-secrets, count.index)}" = data.azurerm_key_vault_secret.secret.*.value
   }
}

模块/部署:

data "template_file" "template" {
  template = ".secrets"

  vars = "${merge(
    env_secrets,
    map(
      "dummy", "dummy"
    )
  )}"
}

0 个答案:

没有答案