内置对象
Release
| Release.Name | release 名字 |
|---|---|
| Release.Namespace | release 命名空间 |
| Release.Service | release 服务的名称 |
| Release.Revision release | 修订版本号,从 1 开始累加 |
| Release.IsUpgrade | 如果当前操作是升级或回滚,则将其设置为 true |
| Release.IsInstall | 如果当前操作是安装,则设置为 true。 |
Values
从values.yaml文件和用户提供的文件传入模板的值。默认情况下,Values 是空的。
清空默认的Values 文件,写入如下内容
favoriteDrink: coffee
查看渲染的的结果
$ helm install geared-marsupi ./mychart --dry-run --debug...---# Source: mychart/templates/configmap.yamlapiVersion: v1kind: ConfigMapmetadata:name: geared-marsupi-configmapdata:myvalue: "Hello Mychart"drink: coffee
通过 helm install 或者 helm upgrade 的 -f 或者 —values 参数传入的自定义的yaml 文件
通过 —set 参数传入的值
helm install solid-vulture ./mychart --dry-run --debug --set favoriteDrink=slurm
chart 的 values.yaml 提供的值可以被用户提供的 values 文件覆盖,而该文件同样可以 被 —set 提供的参数所覆盖。
Chart
Files
Capabilities
Capabilities.APIVersions 是一组版本信息。 Capabilities.APIVersions.Has $version 指示是否在群集上启用版本(batch/v1)。
Capabilities.KubeVersion 提供了查找 Kubernetes 版本的方法。它具有以下值:Major,Minor,GitVersion,GitCommit,GitTreeState,BuildDate,GoVersion,Compiler,和 Platform。
Capabilities.TillerVersion 提供了查找 Tiller 版本的方法。它具有以下值:SemVer,GitCommit,和 GitTreeState。
Template
| Template.Name | |
|---|---|
| Template.BasePath |
函数
apiVersion: v1kind: ConfigMapmetadata:name: {{ .Release.Name }}-configmapdata:myvalue: "Hello Mychart"drink: {{ quote .Values.favoriteDrink }}
执行
helm install my-chart ./mychart --dry-run --debug...---# Source: mychart/templates/configmap.yamlapiVersion: v1kind: ConfigMapmetadata:name: my-chart-configmapdata:myvalue: "Hello Mychart"drink: "coffee"
管道
apiVersion: v1kind: ConfigMapmetadata:name: {{ .Release.Name }}-configmapdata:myvalue: "Hello Mychart"drink: {{ .Values.favoriteDrink | quote}}
执行结果
$ helm install my-chart ./mychart --dry-run --debug---# Source: mychart/templates/configmap.yamlapiVersion: v1kind: ConfigMapmetadata:name: my-chart-configmapdata:myvalue: "Hello Mychart"drink: "coffee"
default 函数
default 函数:default 默认值 给的值。这个函数可以在模板中指定默认值,避免这个值被省略。
apiVersion: v1kind: ConfigMapmetadata:name: {{ .Release.Name }}-configmapdata:myvalue: "Hello Mychart"drink: {{ .Values.favoriteDrink | default "tea" | quote}}
注释掉
#favoriteDrink: coffee
执行
helm install my-chart ./mychart --dry-run --debug---# Source: mychart/templates/configmap.yamlapiVersion: v1kind: ConfigMapmetadata:name: my-chart-configmapdata:myvalue: "Hello Mychart"drink: "tea"
流程控制
修改values.yaml
favorite:drink: coffee
apiVersion: v1kind: ConfigMapmetadata:name: {{ .Release.Name }}-configmapdata:myvalue: "Hello Mychart"drink: {{ .Values.favorite.drink | default "tea" | quote}}{{if eq .Values.favorite.drink "coffee"}}mug: "true"{{ end }}
执行
helm install my-chart ./mychart --dry-run --debug...---# Source: mychart/templates/configmap.yamlapiVersion: v1kind: ConfigMapmetadata:name: my-chart-configmapdata:myvalue: "Hello Mychart"drink: "coffee"mug: "true"
会有空格
apiVersion: v1kind: ConfigMapmetadata:name: {{ .Release.Name }}-configmapdata:myvalue: "Hello Mychart"drink: {{ .Values.favorite.drink | default "tea" | quote}}{{- if eq .Values.favorite.drink "coffee"}}mug: "true"{{- end }}
会移除左边的空格
helm install my-chart ./mychart --dry-run --debug...---# Source: mychart/templates/configmap.yamlapiVersion: v1kind: ConfigMapmetadata:name: my-chart-configmapdata:myvalue: "Hello Mychart"drink: "coffee"mug: "true"
