读取 Helm 助手图表中的文件

问题描述 投票:0回答:1

我正在尝试创建一个帮助图表,为其他图表提供文件内容。基本上,由于我的所有应用程序都有几乎相同的

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 真的可以做这样的事情吗?

kubernetes-helm
1个回答
-1
投票

所以最终我找到了一个适合我需求的解决方案。我没有从资源文件中获取资源,而是使用一个模板创建了一个额外的助手,如下所示:

{{- 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>
© www.soinside.com 2019 - 2024. All rights reserved.