templates - 将 conf 文件嵌入 helm chart
问题描述
我是新掌舵人。我正在构建一个带有大量 conf 文件的 splunk helm 图表。我目前在 configmap 中使用这样的东西..
apiVersion: v1
kind: ConfigMap
metadata:
name: splunk-master-configmap
data:
indexes.conf: |
# global settings
# Inheritable by all indexes: no hot/warm bucket can exceed 1 TB.
# Individual indexes can override this setting.
homePath.maxDataSizeMB = 1000000
但我更愿意将 conf 文件放在单独的文件夹中,例如 configs/helloworld.conf 并且遇到了“tpl”,但我很难理解如何实现它。- 任何人都可以建议最佳做法。附带说明一下,splunk 有总统顺序 >> 因此可能有许多 index.conf 文件在不同位置使用。有没有人对如何最好地实施这个有任何想法?!??!
干杯。
解决方案
如果文件的内容是静态的,那么您可以在图表中创建与模板目录相同级别的文件目录(不在其中)并像这样引用它们:
kind: ConfigMap
metadata:
name: splunk-master-configmap
data:
{{ (.Files.Glob "files/indexes.conf").AsConfig | indent 2 }}
{{ (.Files.Glob "files/otherfile.conf").AsConfig | indent 2 }}
# ... and so on
如果您希望能够引用文件中变量的值,以便通过 values.yaml 控制内容,那么这会发生故障。如果您想单独公开每个值,那么helm 文档中有一个使用 range 的示例。但我认为stable/mysql 图表的作用很合适,或者你的情况。它有一个将值作为字符串的 ConfigMap:
{{- if .Values.configurationFiles }}
apiVersion: v1
kind: ConfigMap
metadata:
name: {{ template "mysql.fullname" . }}-configuration
data:
{{- range $key, $val := .Values.configurationFiles }}
{{ $key }}: |-
{{ $val | indent 4}}
{{- end }}
{{- end -}}
values.yaml 允许图表用户设置和覆盖文件及其内容:
# Custom mysql configuration files used to override default mysql settings
configurationFiles:
# mysql.cnf: |-
# [mysqld]
# skip-name-resolve
# ssl-ca=/ssl/ca.pem
# ssl-cert=/ssl/server-cert.pem
# ssl-key=/ssl/server-key.pem
它注释掉该内容并将其留给图表的用户进行设置,但您可以在 values.yaml 中设置默认值。
tpl
仅当您需要进一步的灵活性时才需要。stable/keycloak 图表允许图表用户创建自己的配置映射,并通过 tpl将其指向 keycloak 部署。但我认为你的情况可能最接近 mysql 的情况。
编辑:tpl 函数还可用于获取使用 Files.Get 加载的文件的内容,并有效地使该内容成为模板的一部分 - 请参阅如何将多个模板化配置文件加载到 helm 图表中?如果你对此感兴趣
推荐阅读
- powershell - 如何通过 Powershell 找到身份验证域控制器
- kotlin - Kotlin data class with spring jpa
- error-handling - 如何捕获 rust 中的所有错误?
- python - AttributeError:'datetime.date'对象没有属性'tzinfo'Datetime Django
- python - 输出中的错误消息不会在 Visual Studio Code 中关闭
- docker - “docker ps”不显示 Kubernetes 控制的容器的 PORT 详细信息
- hadoop - 如何在同一个配置单元表中使用派生列?
- flutter - Flutter GPU渲染中的帧请求未决含义是什么
- regex - grep -P 查找包含恰好 n 个 A 后跟恰好 n B 的行
- c - 如何将两个变量写入 .txt 文件的同一行?C语言