模板 Chart.yaml 文件
Posted
技术标签:
【中文标题】模板 Chart.yaml 文件【英文标题】:Template the Chart.yaml file 【发布时间】:2020-04-28 15:13:40 【问题描述】:我想在我的 Chart.yaml 文件中对值进行模板化。
例如,version: .Values.version
而不是 version: 0.1.0
对于其他 yaml 文件,上述方法也可以。但是,据我了解,Helm 对 Chart.yaml 的处理方式有所不同,Chart.yaml 文件并未通过模板引擎运行。
有人知道解决方法吗?
如果我尝试控制 lint(在我的 values.yaml 文件中使用 version: 0.1.0
作为条目),我得到的实际错误是:
error converting YAML to JSON: yaml: invalid map key: map[interface ]interface ".Values.version":interface (nil)
【问题讨论】:
有谁知道这方面是否有官方文档:“Chart.yaml 文件没有通过模板引擎运行”? 【参考方案1】:您正在向后考虑问题:在Chart.yaml
中指定版本并派生在模板中使用它的任何位置;您不能在 Chart.yaml
中拥有动态版本,因为 helm repo index .
不接受 --set
或任何此类标志,因此无法构造要上传的 tgz
因此,给定一个Chart.yaml
:
apiVersion: v1
name: my-awesome-chart
appVersion: 0.1.0
version: 1.2.3
还有一个Deployment.yaml
模板:
$myTag := .Chart.Version
/* or, you can use .Chart.AppVersion */
apiVersion: apps/v1
kind: Deployment
spec:
template:
spec:
containers:
- image: docker.example.com: $myTag
# produces: docker.example.com:1.2.3
【讨论】:
以上是关于模板 Chart.yaml 文件的主要内容,如果未能解决你的问题,请参考以下文章
kubernetes实战篇之helm示例yaml文件文件详细介绍
如何从 azure devops 上的图表 yaml 文件中获取 appVersion?
错误:在 Chart.yaml 中找到,但在 charts/ 目录中缺失:elasticsearch、kibana、filebeat、logstash