Nic*_*eed 2 templates splunk kubernetes kubernetes-helm configmap
我是掌舵人。我用大量的conf文件构建了一个混乱的头盔图表。我目前在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
Run Code Online (Sandbox Code Playgroud)
但是我更喜欢将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
Run Code Online (Sandbox Code Playgroud)
如果您希望能够引用文件中变量的值,以便从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 -}}
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
它会注释掉该内容,并将其留给图表用户设置,但您可以在values.yaml中使用默认值。
仅tpl
在需要进一步灵活性时才需要。在稳定/ keycloak图表让图表的用户创建自己的configmap,并通过第三方物流将其指向到keycloak部署。但我认为您的情况可能与mysql最接近。
编辑:tpl函数也可以用来获取用Files加载的文件的内容。获取并有效地使该内容成为模板的一部分-请参阅如何将多个模板化的配置文件加载到头盔图表中?如果您对此感兴趣
归档时间: |
|
查看次数: |
3248 次 |
最近记录: |