Geo*_*rge 1 kubernetes-helm configmap
我有一个定义如下的 configmap 文件
apiVersion: v1
kind: ConfigMap
metadata:
name: {{ .Release.Name }}-dashboard-cm-conf
namespace: {{ .Release.Namespace }}
data:
{{ (tpl (.Files.Glob "conf/*").AsConfig . ) | indent 2 }}
Run Code Online (Sandbox Code Playgroud)
正如您在上面看到的,它占用了“conf”文件夹的内容作为数据。一切正常,但是当我尝试使用“部署文件中的以下行”实施“注释”以触发“POD 重新启动”时,会观察到问题。
annotations:
checksum/config-map: {{ include (print .Template.BasePath "/dashboard-conf-map.yaml") . | sha256sum }}
Run Code Online (Sandbox Code Playgroud)
即使“conf”文件夹的内容发生更改并且执行“helm 升级”,POD 也不会重新启动。
如果我使用一个简单的配置映射,其数据定义如下,参数的更改和“helm 升级”确实会导致 POD 重新启动
data:
parameter1: testparam1
parameter2: testparam2
Run Code Online (Sandbox Code Playgroud)
我在这里有以下问题
有没有办法对文件夹执行校验和。
有没有办法在 configmap.txt 中获取像下面这样的 linux-command 的输出?
find dashboard/conf/ -type f -exec md5sum {} \; |md5sum
annotations:
checksum: {{ include (print .Template.BasePath "/logback-spring.xml") . | sha256sum }}
Run Code Online (Sandbox Code Playgroud)
我收到以下错误错误:chart-2/charts/dashboar/templates/conf1/logback-spring.xml 上的 YAML 解析错误:解组 JSON 时出错:解码 JSON:json:无法将字符串解组为 releaseutil.SimpleHead 类型的 Go 值
checksum/config: {{ include (print .BasePath "../conf/values1.yaml") . | sha256sum }}
checksum/config: {{ include (print .Template.BasePath "/../../conf/values1.yaml") . | sha256sum }}
checksum/config: {{ include (print .Template.BasePath "/../conf/values1.yaml") . | sha256sum }}
Run Code Online (Sandbox Code Playgroud)
错误调用包括:模板:没有与模板“gotpl”关联的模板“chart-2/charts/dashboard/templates../conf/values1.yaml”
错误调用包括:模板:没有与模板“gotpl”关联的模板“chart-2/charts/dashboard/templates/../conf/values1.yaml”
错误调用包括:模板:没有与模板“gotpl”关联的模板“chart-2/charts/dashboard/templates/../../conf/values1.yaml”
模板include函数是一个 Helm 扩展,它执行命名模板,就像标准template指令一样,但以字符串形式返回模板的内容。与读取文件无关。
要读回文件,您需要使用顶级.Files对象。特别需要注意的是,它无法读取图表templates目录中的文件;在文件名中添加前缀.Template.BasePath将不起作用,您需要将包含的文件移至其他位置。
假设您conf在主图表目录中创建了一个子目录:
Chart.yaml\nvalues.yaml\nconf/\n logback.xml\ntemplates/\n configmap.yaml\nRun Code Online (Sandbox Code Playgroud)\n您在此处列出的许多函数 \xe2\x80\x93 .Files.Get、\xe2\x80\x93 都会返回字符串,因此您可以将它们组合在一起。例如,您可以计算 ConfigMap 渲染内容的校验和,如下所示:.Files.Glob.AsConfigtpl
Chart.yaml\nvalues.yaml\nconf/\n logback.xml\ntemplates/\n configmap.yaml\nRun Code Online (Sandbox Code Playgroud)\n如果您愿意,您也可以在单个非 YAML 文件上执行此操作:.Files.Get返回一个字符串,因此
.Files.Get "conf/logback-spring.xml" | sha256sum\nRun Code Online (Sandbox Code Playgroud)\n的根路径.Files.Get是图表的根。您可以检索不在目录中的任何文件templates,但无法访问图表之外的文件。
| 归档时间: |
|
| 查看次数: |
5365 次 |
| 最近记录: |