Postgresql 如何在terraform';谁是舵手?

Postgresql 如何在terraform';谁是舵手?,postgresql,kubernetes,terraform,kubernetes-helm,Postgresql,Kubernetes,Terraform,Kubernetes Helm,到目前为止,我没有成功地将initdbScript传递给terraform的helm提供程序来创建数据库。有人试过这个吗 这是我对.tf文件的尝试: resource "helm_release" "database" { name = "database" chart = "stable/postgresql" set { name = "postgresqlUsername" value = "user" } set { name = "

到目前为止,我没有成功地将
initdbScript
传递给terraform的helm提供程序来创建数据库。有人试过这个吗

这是我对.tf文件的尝试:

resource "helm_release" "database" {
  name  = "database"
  chart = "stable/postgresql"

  set {
    name  = "postgresqlUsername"
    value = "user"
  }

  set {
    name  = "postgresqlPassword"
    value = "xxx"
  }

  set {
    name  = "initdbScripts"
    value = "init.sql: |${file("../backend/init.sql")}"
  }
} 
看起来as
helm
不接受字典

我得到一个错误:

Error: rpc error: code = Unknown desc = release database failed: ConfigMap in version "v1" cannot be handled as a ConfigMap: v1.ConfigMap.Data: ReadMapCB: expect { or n, but found ", error found in #10 byte of ...|","data":"init.sql: |..., bigger context ...|{"apiVersion":"v1","data":"init.sql: |CREATE DATABASE test;\n","kind":"Config|...
我正在使用 地形v0.12.5 +provider.helm v0.10.0
+provider.kubernetes v1.8.1

为什么其中有一个
字符?在YAML中,它用于多行字符串文本,但通常需要更复杂的格式才能正常工作。
init.sql
是一个文件,因此
${file()}
构造通常会产生多行字符串。为了简单起见,我发布的示例进行了简化。鉴于您遇到的格式问题几乎肯定至少与空白和其他细节有关,我将对您的问题进行编辑,使其更加准确。谢谢您的建议。到目前为止,我发现的错误消息中最具体的部分是:
expect{或n
。由于几乎没有关于格式的文档,我尝试了不同的格式变体,但没有成功。因此,我正在寻找可能成功地将文件作为
initdbScript
注入terraform的人。这有帮助吗?您可以在最后看到完整的错误,正如我所说的,管道字符是表单尝试错误。您需要一个新行并在其后缩进。并且在其后缩进每一行。