从kubernetes秘密中获得掌舵价值?

时间:2020-02-04 05:20:59

标签: kubernetes prometheus kubernetes-helm prometheus-operator

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

此图表需要MONGODB_URI个环境变量或mongodb.uri文件中填充的values.yaml, 由于这是一个连接字符串,因此我不想将其签入git。 我正在考虑kubernetes秘密,并提供kubernetes秘密的连接字符串。我无法成功找到该解决方案。

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

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

1 个答案:

答案 0 :(得分:3)

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


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

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


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