模板 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 文件的主要内容,如果未能解决你的问题,请参考以下文章

[转帖]helm模板文件chart编写语法详解

kubernetes实战篇之helm示例yaml文件文件详细介绍

如何从 azure devops 上的图表 yaml 文件中获取 appVersion?

k8s结合helm部署

错误:在 Chart.yaml 中找到,但在 charts/ 目录中缺失:elasticsearch、kibana、filebeat、logstash

k8s/Kubernetes常用组件Helm的部署