helm模板开发入门(一)
目录
警告
本文最后更新于 2020-06-18 17:27,文中内容可能已过时。
chart包目录结构:
|
|
Chart.yaml
|
|
第一个模板:
1.创建chart:
|
|
2.创建资源清单模板:
vim mychart/templates/configmap.yaml
|
|
3.安装
|
|
上面的{{ .Release.Name }}意思是获取Release对象的Name值
helm模板提供的内置对象:
Release:
- Release.Name: release的名称
- Release.Time: release的发布时间
- Release.Namespace: release的namespace
- Release.Service: 发布服务的名称,总是Tiller
- Release.Revision: release的版本修订号。它从1开始,随着release的升级而增加。
- Release.IsUpgrade: 如果当前操作是升级或回滚,则为true
- Release.IsInstall: 如果当前操作是安装,则为true
Values:从values.yaml文件和用户提供的文件传递到模板的值。默认情况下Values为空。
Chart:读取Chart.yaml文件的内容。例如{{.Chart.Name}}-{{.Chart.Version}}将打印出mychart-0.1.0。
Files:这提供对图表中所有非特殊文件的访问。虽然无法使用它来访问模板,但是可以使用它来访问图表中的其他文件。
- Files.Get 是一个按名称获取文件的函数(.Files.Get config.ini)
- Files.GetBytes 是将文件内容作为字节数组而不是字符串获取的函数。这对于像图片这样的东西很有用。
Capabilities: 提供了关于 Kubernetes 集群支持的功能的信息
- Capabilities.APIVersions:是一组版本信息。
- Capabilities.APIVersions.Has $version:是否支持指定的api或resources版本
- Capabilities.KubeVersion:提供查找Kubernetes版本的方法。它有以下值:Major、Minor、GitVersion、GitCommit、GitTreeState、BuildDate、GoVersion、Compiler和Platform。
- Capabilities.TillerVersion:提供了一种查找tiller版本的方法。它有以下值:SemVer, GitCommit, GitTreeState。
Template: Contains information about the current template that is being executed
- Name:当前模板的文件路径(例如mychart/templates/mytemplate.yaml)
- BasePath: 当前chart模板目录路径(例如mychart/templates)
这些值可用于任何顶级模板。这并不一定意味着它们将在任何地方都可用。
values 文件
传递到chart中的值。它的内容来自四个来源:
- chart包的values.yaml文件
- 如果是子chart,则values.yaml文件为父chart包的
- 通过-f参数指定一个文件(helm install -f myvals.yaml ./mychart)
- 通过–set指定 (helm install –set foo=bar ./mychart)
上面的列表按特定性顺序排列:values.yaml是默认值,可以被父图表的覆盖values.yaml,而后者可以由用户提供的值文件覆盖,而后者又可以由–set参数覆盖。
示例: 1.添加一个value
|
|
2.修改模板cat templates/configmap.yaml
|
|
3.升级chart
|
|
4.查看渲染后的结果
|
|
请我喝杯水
微信号
微信打赏