簡體   English   中英

Terraform - Kubernetes - Helm Release - 生成密碼

[英]Terraform - Kubernetes - Helm Release - Generate Password

給出的是以下場景

  • Terraform 用於生成 2 個 Kubernetes 命名空間
  • 命名空間 A包含 RabbitMQ
    • RabbitMQ 通過 HELM 圖表通過 terraform 安裝
    • 如果未設置,則在 HELM 圖表中生成 RabbitMQ 的密碼秘密
  • 命名空間 B包含訪問 RabbitMQ 的應用程序
    • 因此密碼需要從A -> B復制(或在 B 中生成)

如何使用純 terraform 邏輯將秘密放入命名空間 B?

我的想法:

  • 只需從A -> B復制秘密(無法找到解決方案)
  • A中的秘密讀取密碼值並在B中創建一個新秘密(只能找到秘密最初由 terraform 生成的解決方案)
  • 使用 terraform "random_password"-resource 生成密碼秘密並在 helm-chart 中使用它
    • 如果我可以有條件地檢查 terraform var 是否未設置 = 生成,則可以工作,否則使用 var-value

這個問題有好的解決方案嗎?

Terraform 的 kubernetes 提供者似乎有一個 kubernetes_secret 數據源: https://registry.terraform.io/provider/docs/hashisource-corpsnetsecesdata/

因此,至少從理論上講,根據您在運行配置時願意提供給 terraform 的 K8s 憑據,您可能只需將數據源添加到命名空間 B 的配置中:

data "kubernetes_secret" "rabbit_password" {
  metadata {
    name = "rabbit_password"
    namespace = "namespace_a"
  }
}

然后將您需要的數據引用為:

data.kubernetes_secret.rabbit_password.data["rabbitmq-password"]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM