我有一个简单的 json 配置文件,格式如下:
{
"applications" : [
{
"appName": "app1"
},
{
"appName": "app2"
}
]
}
现在我有 2 个 helm 图表,定义了每个应用程序的部署:
apiVersion: v1
kind: Deployment
metadata:
name: app1
# etc, etc, etc
---
apiVersion: v1
kind: Deployment
metadata:
name: app2
# etc, etc, etc
我想做的是在安装时加载该 json 配置文件并使用它来生成所需的部署图表,如下所示:
# "config" holds the loaded json file
{{- range .Values.config.applications }}
apiVersion: v1
kind: Deployment
metadata:
name: {{ .appName | quote }}
{{- end}}
这可能吗?我在这里尝试了很多答案,但几乎所有答案都与通过配置映射将 json 文件传递到应用程序有关。如何在 helm 中加载 json 文件并使用图表本身中的值?请注意,其他应用程序也在使用此文件,因此我不能将其更改为 YAML 文件或类似文件。
最佳答案
Helm 有 a couple of undocumented functions ,包括一个 fromJson
函数。 (或者,如果您希望顶级对象是一个数组,fromJsonArray
。)您应该能够将其与 file-retrieval calls 结合起来。能够做类似的事情:
{{- $config := .Files.Get "config.json" | fromJson }}
{{- range $config.applications }}
name: {{ .appName | quote }}
{{/* and otherwise as you have it in the question */}}
{{- end }}
关于json - 如何使用 Json 文件作为 Helm 的 Values 来源?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65183687/