【发布时间】:2020-05-30 02:53:31
【问题描述】:
我正在尝试将现有的 kubernetes 机密导入我的 Terraform 状态。
秘密资源应该与 postgres 资源一起位于一个模块中。我的想法是创建 postgres 用户凭据并将它们直接放入 K8S 机密中。
资源如下所示:
resource "kubernetes_secret" "database-credentials" {
metadata {
name = "${var.name}-database-credentials"
}
data = {
username = "${var.name}_user"
password = random_password.password.result
}
type = "Opaque"
}
然后,我尝试使用以下命令导入它:
terraform import module.<module_name>.kubernetes_secret.database-credentials default/<existing-secret-name>
现在,问题是此命令失败并显示以下错误消息:
Error: Error initializing PostgreSQL client: error detecting capabilities: error PostgreSQL version: pq: no PostgreSQL user name specified in startup packet
我不知道为什么 PostgreSQL 客户端需要在这里做任何事情或者为什么会失败。在 kubernetes 机密资源配置上方定义了 postgres 资源,但我只想导入一个 k8s 机密。我已经定义了所有必要的环境变量。 terraform apply 在我没有秘密的情况下运行它时工作正常。
有人能指点我正确的方向吗?
【问题讨论】:
-
您是说在运行导入时遇到该错误吗?这看起来像是您在运行计划时可能会遇到的错误,您在其中创建 Postgresql 主机并尝试同时使用它,但在导入期间不应发生。
-
是的,我在导入过程中确实遇到了该错误,但请参阅下面的答案。
标签: postgresql terraform