Helm:如何使用".Files.Get"将 JSON 导入配置映射



我尝试将 json 文件导入配置映射,但映射不包含该文件。

我的配置映射模板:

apiVersion: v1
kind: ConfigMap
metadata:
name: serilog-configmap
data:
serilog.json: |-
{{ .Files.Get "serilog.json" | indent 4}}

serilog.json位于项目的根路径中,有一个带有图表和templetes的子目录(来自helm create(。

我都尝试了"../../serilog.json"和完整路径作为文件名,但当我运行 helm install --debug --dry-run 时,它总是以相同的结果结束。

---
# Source: hellowebapi/templates/serilogConfigMap.yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: serilog-configmap
data:
serilog.json: |-
---

我会说明:

---
# Source: hellowebapi/templates/serilogConfigMap.yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: serilog-configmap
data:
serilog.json: |-
{
"Serilog": {
"Using": [
"Serilog.Sinks.ColoredConsole"
],
...
---

谁能告诉我我在哪里犯了错误?

试试这个:

---
apiVersion: v1
kind: ConfigMap
metadata:
name: serilog-configmap
data:
serilog.json: |-
{{- $.Files.Get "configurations/serilog.json"  | nindent 6 -}}

具有 JSON 文件的相对路径 (hellowebapi/configurations/serilog.json(

它将产生:

---
# Source: serilog/templates/test.yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: serilog-configmap
data:
serilog.json: |-
{
"apiVersion": "v1",
"kind": "Pod",
"metadata": {
"annotations": {

您的json文件应该在您的图表目录中。

请参阅访问模板中的文件

λ ls
Chart.yaml  charts/  serilog.json  templates/  values.yaml
λ helm template .
---
# Source: templates/configmap.yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: serilog-configmap
data:
serilog.json: |-
{
"Serilog": {
"Using": [
"Serilog.Sinks.ColoredConsole"
]
}
}

最新更新