Helm内置对象和摸版语言
Helm 与 k8s 集群兼容版本
Helm 版本 支持的 Kubernetes 版本 3.7.x 1.22.x - 1.19.x 3.6.x 1.21.x - 1.18.x 3.5.x 1.20.x - 1.17.x 3.4.x 1.19.x - 1.16.x 3.3.x 1.18.x - 1.15.x 3.2.x 1.18.x - 1.15.x 3.1.x 1.17.x - 1.14.x 3.0.x 1.16.x - 1.13.x 2.16.x 1.16.x - 1.15.x 2.15.x 1.15.x - 1.14.x 2.14.x 1.14.x - 1.13.x 2.13.x 1.13.x - 1.12.x 2.12.x 1.12.x - 1.11.x 2.11.x 1.11.x - 1.10.x 2.10.x 1.10.x - 1.9.x 2.9.x 1.10.x - 1.9.x 2.8.x 1.9.x - 1.8.x 2.7.x 1.8.x - 1.7.x 2.6.x 1.7.x - 1.6.x 2.5.x 1.6.x - 1.5.x 2.4.x 1.6.x - 1.5.x 2.3.x 1.5.x - 1.4.x 2.2.x 1.5.x - 1.4.x 2.1.x 1.5.x - 1.4.x 2.0.x 1.4.x - 1.3.x
标准标签
名称 状态 描述 app.kubernetes.io/name 推荐 app名称,反应整个app。{{ template "name" . }}经常用于此。很多Kubernetes清单会使用这个,但不是Helm指定的。 helm.sh/chart 推荐 chart的名称和版本: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}。 app.kubernetes.io/managed-by 推荐 此值应始终设置为 {{ .Release.Service }}。 用来查找被Helm管理的所有内容。 app.kubernetes.io/instance 推荐 这个应该是{{ .Release.Name }}。 有助于在同一应用程序中区分不同的实例。 app.kubernetes.io/version 可选 app的版本,且被设置为 {{ .Chart.AppVersion }}. app.kubernetes.io/component 可选 这是通用标签,用于标记块在应用程序中可能扮演的不同角色。比如 app.kubernetes.io/component: frontend。 app.kubernetes.io/part-of 可选 当多个chart或块用于构建一个应用程序时。比如,应用软件和数据库生成一个网站。这可以设置为受支持的顶级应用程序。 app.kubernetes.io/created-by 可选 创建者
内置对象
Release.Name: release名称 Release.Namespace: 版本中包含的命名空间(如果manifest没有覆盖的话) Release.IsUpgrade: 如果当前操作是升级或回滚的话,需要将该值设置为true Release.IsInstall: 如果当前操作是安装的话,需要将该值设置为true Release.Revision: 此次修订的版本号。安装时是1,每次升级或回滚都会自增 Release.Service: 该service用来渲染当前模板。Helm里一般是Helm
Files.Get 通过文件名获取文件的方法。 (.Files.Getconfig.ini) Files.GetBytes 用字节数组代替字符串获取文件内容的方法。 对图片之类的文件很有用 Files.Glob 用给定的shell glob模式匹配文件名返回文件列表的方法 Files.Lines 逐行读取文件内容的方法。迭代文件中每一行时很有用 Files.AsSecrets 使用Base 64编码字符串返回文件体的方法 Files.AsConfig 使用YAML格式返回文件体的方法
Capabilities.APIVersions 是一个版本集合 Capabilities.APIVersions.Has $version 说明集群中的版本 (e.g., batch/v1) 或是资源 (e.g., 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.Name: 当前模板的命名空间文件路径 (e.g. mychart/templates/mytemplate.yaml) Template.BasePath: 当前chart模板目录的路径 (e.g. mychart/templates)
示例: 调用 values 配置
示例: 配置 nginx.conf 调用
示例: Files.Glob 和 AsConfig 得使用
模板中的流程控制
if / else
一个布尔类型的假
一个数字零
一个空的字符串
一个 nil(空或null)
一个空的集合(map, slice, tuple, dict, array) 除了上面的这些情况外,其他所有的条件都为真。
with 指定范围
range 循环
Last updated