在 Helm 帮助图表中读取文件
Read file in Helm helper chart
我正在尝试创建一个辅助图表,将文件内容提供给其他图表。基本上,由于我的所有应用程序都具有几乎相同的 logging.xml
配置,所以我想在一个地方定义它并在应用程序图表之间共享。
到目前为止,我已经成功创建了一个模板:
{{- define "helpers.logging.xml" -}}
logback.xml: |-
{{ .Files.Get "resources/logback.xml" }}
{{- end }}
辅助图表中的文件结构如下所示:
helpers
|--templates
|--_helpers.tpl
|-resources
|--logback.xml
Chart.yaml
在主图表中,我尝试传递模板的结果。但只有当我在应用程序图表本身中有一个 resouses/logging.xml
文件时它才有效。
apiVersion: v1
kind: ConfigMap
metadata:
name: logging.{{ .Release.Name }}
namespace: {{ .Release.Namespace }}
data:
{{ include "helpers.logging.xml" . }}
有人可以告诉我哪里出了问题吗?用 Helm 真的可以做这样的事情吗?
所以最后我找到了适合我需要的解决方案。我没有从资源文件中获取资源,而是使用这样的单个模板创建了一个额外的帮助程序:
{{- define "templates.logback.xml" -}}
logback.xml: |-
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<!-- default configuration goes here -->
<!-- ... -->
<!-- include custom config -->
<include file="logback-custom.xml"/>
</configuration>
{{- end }}
在图表中,我有一个配置如下的 configMap:
apiVersion: v1
kind: ConfigMap
metadata:
name: logging.{{ .Release.Name }}
namespace: {{ .Release.Namespace }}
data:
{{ include "templates.logback.xml" . }}
logback-custom.xml: |
<included>
<!-- custom config -->
</included>
我正在尝试创建一个辅助图表,将文件内容提供给其他图表。基本上,由于我的所有应用程序都具有几乎相同的 logging.xml
配置,所以我想在一个地方定义它并在应用程序图表之间共享。
到目前为止,我已经成功创建了一个模板:
{{- define "helpers.logging.xml" -}}
logback.xml: |-
{{ .Files.Get "resources/logback.xml" }}
{{- end }}
辅助图表中的文件结构如下所示:
helpers
|--templates
|--_helpers.tpl
|-resources
|--logback.xml
Chart.yaml
在主图表中,我尝试传递模板的结果。但只有当我在应用程序图表本身中有一个 resouses/logging.xml
文件时它才有效。
apiVersion: v1
kind: ConfigMap
metadata:
name: logging.{{ .Release.Name }}
namespace: {{ .Release.Namespace }}
data:
{{ include "helpers.logging.xml" . }}
有人可以告诉我哪里出了问题吗?用 Helm 真的可以做这样的事情吗?
所以最后我找到了适合我需要的解决方案。我没有从资源文件中获取资源,而是使用这样的单个模板创建了一个额外的帮助程序:
{{- define "templates.logback.xml" -}}
logback.xml: |-
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<!-- default configuration goes here -->
<!-- ... -->
<!-- include custom config -->
<include file="logback-custom.xml"/>
</configuration>
{{- end }}
在图表中,我有一个配置如下的 configMap:
apiVersion: v1
kind: ConfigMap
metadata:
name: logging.{{ .Release.Name }}
namespace: {{ .Release.Namespace }}
data:
{{ include "templates.logback.xml" . }}
logback-custom.xml: |
<included>
<!-- custom config -->
</included>