helm 内置对象¶
对象可以通过模板引擎传递到模板中。 当然你的代码也可以传递对象。(我们在使用with
和range
语句时,会看到示例)。有几种方式可以在模板中创建新对象,比如说我们后面会看到的tuple
功能。
对象可以是非常简单的:仅有一个值。或者可以包含其他对象或方法。比如,Release
对象可以包含其他对象(比如:Release.Name
)和Files
对象有一组方法。
在上一部分中,我们用{{ .Release.Name }}
在模板中插入版本名称。Release
是你可以在模板中访问的顶层对象之一。
- Release: Release 对象描述了版本发布本身。包含了以下对象:
Release.Name
: release名称Release.Namespace
: 版本中包含的命名空间(如果manifest没有覆盖的话)Release.IsUpgrade
: 如果当前操作是升级或回滚的话,该值将被设置为true
Release.IsInstall
: 如果当前操作是安装的话,该值将被设置为true
Release.Revision
: 此次修订的版本号。安装时是1,每次升级或回滚都会自增-
Release.Service
: 该service用来渲染当前模板。Helm里始终Helm
-
Values
:Values
对象是从values.yaml
文件和用户提供的文件传进模板的。默认为空 -
Chart
:
Chart.yaml文件内容。
Chart.yaml里的所有数据在这里都可以可访问的。比如
}-{{ .Chart.Version }}会打印出
mychart-0.1.0 -
在 Chart 指南 中列出了可获得属性
-
Files: 在chart中提供访问所有的非特殊文件的对象。你不能使用它访问Template对象,只能访问其他文件。 请查看这个
文件访问部分了解更多信息
Files.Get
通过文件名获取文件的方法。 (.Files.Getconfig.ini
)Files.GetBytes
用字节数组代替字符串获取文件内容的方法。 对图片之类的文件很有用Files.Glob
用给定的shell glob模式匹配文件名返回文件列表的方法Files.Lines
逐行读取文件内容的方法。迭代文件中每一行时很有用Files.AsSecrets
使用Base 64编码字符串返回文件体的方法-
Files.AsConfig
使用YAML格式返回文件体的方法 -
Capabilities
: 提供关于Kubernetes集群支持功能的信息 -
Capabilities.APIVersions
是一个版本列表 Capabilities.APIVersions.Has $version
说明集群中的版本 (比如,batch/v1
) 或是资源 (比如,apps/v1/Deployment
) 是否可用Capabilities.KubeVersion
和Capabilities.KubeVersion.Version
是Kubernetes的版本号Capabilities.KubeVersion.Major
Kubernetes的主版本Capabilities.KubeVersion.Minor
Kubernetes的次版本Capabilities.HelmVersion
包含Helm版本详细信息的对象,和helm version
的输出一致Capabilities.HelmVersion.Version
是当前Helm语义格式的版本Capabilities.HelmVersion.GitCommit
Helm的git sha1值Capabilities.HelmVersion.GitTreeState
是Helm git树的状态-
Capabilities.HelmVersion.GoVersion
是使用的Go编译器版本 -
Template
: 包含当前被执行的当前模板信息 -
Template.Name
: 当前模板的命名空间文件路径 (e.g.mychart/templates/mytemplate.yaml
) Template.BasePath
: 当前chart模板目录的路径 (e.g.mychart/templates
)