image.tag(在values.yaml中)与appVersion(在Chart.yaml中)

时间:2019-09-23 15:02:21

标签: kubernetes-helm

通过helm create chart创建新的Helm图表时,Helm将在appVersion中创建一个Chart.yaml字段,并在image.tag中创建一个values.yaml字段。

出于调试目的,在部署时设置image.tag很方便,而不必创建新图表。但是,否则,我将它们保持同步,因为我想在查看helm list的输出时看到Docker映像的真实版本。

尽管需要调试,是否有理由在部署文件中使用{{ .Values.image.tag }}而不是{{ .Chart.AppVersion }}

1 个答案:

答案 0 :(得分:8)

如果您的版本控制需求相同,那么没关系。

甚至有recommend作为最佳实践来使用

image: "{{ .Values.image.repository }}:{{ default .Chart.AppVersion .Values.image.tag }}"

但是,考虑到{{ .Values.image.tag }}{{ .Chart.AppVersion }}可能经常使用不同的版本。

{{ .Values.image.tag }}-Docker映像标签。

{{ .Chart.AppVersion }}-图像内的应用程序的版本-您可能正在开发一个由图像控制版本的应用程序。

{{ .Chart.version }}-如果要开发Chart,则需要对其进行版本控制。模板的每次更改都会导致版本增加。 Helm documentation说:

每个图表都必须具有版本号。版本必须遵循SemVer 2标准。与Helm Classic不同,Kubernetes Helm使用版本号作为发行标记。存储库中的软件包通过名称加上版本来标识。