helm文档介绍案例(三)

韵味老鸟 2024-07-11 11:04:45

helm文档 介绍案例 (三)

with

控制变量的作用域,也可以使用toYaml {{.Release.xxx}}或者 {{.Values.xxx}}吗?其中的 .就是表示对当前范围的引用, .Values就是告诉模板在当前范围中查找 Values对象的值。而 with语句就可以来控制变量的作用域范围,其语法和一个简单的 if语句比较类似:

$ vim mychart/values.yamlnodeSelector: disktype: ssd gpu: ok$ vim mychart/templates/deployment.yaml {{- with .Values.nodeSelector }} nodeSelector: disktype: {{ .disktype }} gpu: {{ .gpu }} {{- end }}$ helm install web1 mychart --dry-run ### toYaml 格式$ vim mychart/templates/deployment.yaml {{- with .Values.nodeSelector }} nodeSelector: {{- toYaml . | nindent 8 }} {{- end }}$ helm install web1 mychart --dry-run

上面增加了一个{{- with .Values.nodeSelector}} xxx {{- end }}的一个块,这样的话就可以在当前的块里面直接引用 .team和 .gpu了。

with是一个循环构造。使用.Values.nodeSelector中的值:将其转换为Yaml。

toYaml之后的点是循环中.Values.nodeSelector的当前值

with中不能使用内置对象

使用变量引用

$ vim mychart/templates/deployment.yamlspec: {{- $releaseName := .Release.Name -}} {{- with .Values.nodeSelector }} nodeSelector: {{- toYaml . | nindent 8 }} gpu: ok{{ $releaseName }} {{- end }}$ vim mychart/templates/deployment.yaml

命名模板

需要复用代码的地方用。

命名模板:使用define定义,template引入,在templates目录中默认下划线_开头的文件为公共模板(_helpers.tpl)

#https://v3.helm.sh/zh/docs/chart_template_guide/values_files/

nameOverride替换 Chart.yaml文件中图表的名称时,该名称用于构造Kubernetes对象名称。 fullnameOverride完全替换了生成的名称

helm install release-name .,部署将命名为release-name-chart-namehelm install release-name . --set nameOverride=name-override,部署将命名为release-name-name-overridehelm install release-name . --set fullnameOverride=fullname-override,部署将命名为fullname-override

0 阅读:0