如何用Terraform Kubernetes Provider创建等效于文件生成的Secret
Terraform 等效实现 kubectl 创建 Secret
你的当前代码问题在于basic.txt的内容没有保留原文件的换行格式,直接将username和password字段连在一起了,和kubectl create secret的效果不一致。
要实现完全等效的效果,需要让basic.txt的内容和原文件保持一致,即两行格式:
正确实现方式1:字符串拼接加换行符
resource "kubernetes_secret" "k8s_secret" { metadata { namespace = var.namespace name = var.secret_name } data = { basic.txt = "username=${var.api_key}\npassword=${var.api_secret}" } }
正确实现方式2:使用HEREDOC格式(更易读)
resource "kubernetes_secret" "k8s_secret" { metadata { namespace = var.namespace name = var.secret_name } data = { basic.txt = <<-EOT username=${var.api_key} password=${var.api_secret} EOT } }
以上两种方式生成的Secret,和你执行以下kubectl命令的效果完全一致:
kubectl create secret generic cloud-access \ --from-file=basic.txt=$TUTORIAL_HOME/creds-sasl-user.txt
内容的提问来源于stack exchange,提问作者JDev
相关产品推荐
相关产品推荐

