内置对象
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.yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: geared-marsupi-configmap
data:
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: v1
kind: ConfigMap
metadata:
name: {{ .Release.Name }}-configmap
data:
myvalue: "Hello Mychart"
drink: {{ quote .Values.favoriteDrink }}
执行
helm install my-chart ./mychart --dry-run --debug
...
---
# Source: mychart/templates/configmap.yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: my-chart-configmap
data:
myvalue: "Hello Mychart"
drink: "coffee"
管道
apiVersion: v1
kind: ConfigMap
metadata:
name: {{ .Release.Name }}-configmap
data:
myvalue: "Hello Mychart"
drink: {{ .Values.favoriteDrink | quote}}
执行结果
$ helm install my-chart ./mychart --dry-run --debug
---
# Source: mychart/templates/configmap.yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: my-chart-configmap
data:
myvalue: "Hello Mychart"
drink: "coffee"
default 函数
default
函数:default 默认值 给的值
。这个函数可以在模板中指定默认值,避免这个值被省略。
apiVersion: v1
kind: ConfigMap
metadata:
name: {{ .Release.Name }}-configmap
data:
myvalue: "Hello Mychart"
drink: {{ .Values.favoriteDrink | default "tea" | quote}}
注释掉
#favoriteDrink: coffee
执行
helm install my-chart ./mychart --dry-run --debug
---
# Source: mychart/templates/configmap.yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: my-chart-configmap
data:
myvalue: "Hello Mychart"
drink: "tea"
流程控制
修改values.yaml
favorite:
drink: coffee
apiVersion: v1
kind: ConfigMap
metadata:
name: {{ .Release.Name }}-configmap
data:
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.yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: my-chart-configmap
data:
myvalue: "Hello Mychart"
drink: "coffee"
mug: "true"
会有空格
apiVersion: v1
kind: ConfigMap
metadata:
name: {{ .Release.Name }}-configmap
data:
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.yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: my-chart-configmap
data:
myvalue: "Hello Mychart"
drink: "coffee"
mug: "true"