来自 kubernetes 秘密的掌舵值?

helm values from kubernetes secrets?

我正在使用这张图表:https://github.com/helm/charts/tree/master/stable/prometheus-mongodb-exporter

此图表需要 MONGODB_URI 环境变量或 mongodb.uri 填充到 values.yaml 文件中, 因为这是一个连接字符串,所以我不想将其签入 git。 我在考虑 kubernetes secrets 并提供来自 kubernetes secrets 的连接字符串。我一直没能成功找到这个问题的解决方案。

我还尝试创建另一个 helm chart 并将这个用作该图表的依赖项,并从 secrets.yamlMONGODB_URI 提供值,但这也没有用,因为在 prometheus-mongodb-exporter 图表 MONGODB_URI 被定义为一个必需的值,然后传递到该图表内的 secrets.yaml 文件中,因此永远不会安装依赖图表。

实现此目标的最佳方法是什么?

解决方案 1:创建自定义图表


  1. 从图表的模板目录中删除 secret.yaml
  2. 自己创建 k8s secret,可以命名为 cumstom-secret
  3. 编辑deployment.yamlhere
       - name: MONGODB_URI
         valueFrom:
           secretKeyRef:
             name: custom-secret ## {{ include "prometheus-mongodb-exporter.fullname" . }}##
             key: mongodb-uri

解决方案 2:使用原始图表


  1. value.yaml 中为 mongodb.uri 设置一个虚拟值。
  2. 在安装图表时使用--set标志用原始值覆盖虚拟值。因此,您的 git 将没有历史记录。
$ helm install prometheus-mongodb-exporter stable/prometheus-mongodb-exporter --set mongodb.uri=******