将conf文件嵌入到掌舵图表中
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将conf文件嵌入到掌舵图表中相关的知识,希望对你有一定的参考价值。
我掌舵新人。我正在构建一个包含大量conf文件的splunk helm图表。我目前在配置图中使用这样的东西..
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具有总统顺序>>因此可能存在许多在各个位置使用的indices.conf文件。有没有人对如何最好地实现这个有任何想法?!??!
干杯。
如果文件的内容是静态的,那么你可以在图表中创建一个与templates目录(not inside it)相同级别的文件目录,并引用它们:
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控制内容,那么这将会失败。如果你想单独公开每个值,那么就有一个example in the helm documentation using range。但我认为一个合适的或你的情况是what the stable/mysql chart does。它有一个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 chart让图表的用户创建自己的configmap和point it into the keycloak deployment via tpl。但我认为你的情况可能最接近mysql。
编辑:tpl函数也可用于获取Files.Get加载的文件内容,并有效地使该内容成为模板的一部分 - 如果您对此感兴趣,请参阅How do I load multiple templated config files into a helm chart?
以上是关于将conf文件嵌入到掌舵图表中的主要内容,如果未能解决你的问题,请参考以下文章