来自 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.yaml
为 MONGODB_URI
提供值,但这也没有用,因为在 prometheus-mongodb-exporter
图表 MONGODB_URI
被定义为一个必需的值,然后传递到该图表内的 secrets.yaml
文件中,因此永远不会安装依赖图表。
实现此目标的最佳方法是什么?
解决方案 1:创建自定义图表
- 从图表的模板目录中删除
secret.yaml
。
- 自己创建 k8s
secret
,可以命名为 cumstom-secret
- 编辑
deployment.yaml
:here
- name: MONGODB_URI
valueFrom:
secretKeyRef:
name: custom-secret ## {{ include "prometheus-mongodb-exporter.fullname" . }}##
key: mongodb-uri
解决方案 2:使用原始图表
- 在
value.yaml
中为 mongodb.uri
设置一个虚拟值。
- 在安装图表时使用
--set
标志用原始值覆盖虚拟值。因此,您的 git
将没有历史记录。
$ helm install prometheus-mongodb-exporter stable/prometheus-mongodb-exporter --set mongodb.uri=******
我正在使用这张图表: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.yaml
为 MONGODB_URI
提供值,但这也没有用,因为在 prometheus-mongodb-exporter
图表 MONGODB_URI
被定义为一个必需的值,然后传递到该图表内的 secrets.yaml
文件中,因此永远不会安装依赖图表。
实现此目标的最佳方法是什么?
解决方案 1:创建自定义图表
- 从图表的模板目录中删除
secret.yaml
。 - 自己创建 k8s
secret
,可以命名为cumstom-secret
- 编辑
deployment.yaml
:here
- name: MONGODB_URI
valueFrom:
secretKeyRef:
name: custom-secret ## {{ include "prometheus-mongodb-exporter.fullname" . }}##
key: mongodb-uri
解决方案 2:使用原始图表
- 在
value.yaml
中为mongodb.uri
设置一个虚拟值。 - 在安装图表时使用
--set
标志用原始值覆盖虚拟值。因此,您的git
将没有历史记录。
$ helm install prometheus-mongodb-exporter stable/prometheus-mongodb-exporter --set mongodb.uri=******