kubernetes 秘密中的 helm 值?

Asa*_*tel 12 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_URIfrom提供值secrets.yaml,但这也不起作用,因为在prometheus-mongodb-exporter图表中MONGODB_URI定义为所需值,然后将其传递到secrets.yaml该图表中的文件中,因此依赖项因此图表永远不会被安装。

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

Kam*_*san 5

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


  1. secret.yaml从图表的模板目录中删除。
  2. secret自己创建k8s ,也许命名cumstom-secret
  3. 编辑deployment.yaml这里
       - name: MONGODB_URI
         valueFrom:
           secretKeyRef:
             name: custom-secret ## {{ include "prometheus-mongodb-exporter.fullname" . }}##
             key: mongodb-uri
Run Code Online (Sandbox Code Playgroud)

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


  1. mongodb.uri为in设置一个虚拟值value.yaml
  2. --set安装图表时使用标志用原始值覆盖虚拟值。所以,你git不会有历史。
$ helm install prometheus-mongodb-exporter stable/prometheus-mongodb-exporter --set mongodb.uri=******
Run Code Online (Sandbox Code Playgroud)

  • 边注。Set 命令将在 config-map 中存储值而不是秘密。 (5认同)
  • 到 2022 年底还没有更好的解决方案吗?对我来说似乎是一个尴尬的解决方案。 (3认同)