通过helm create chart
创建新的Helm图表时,Helm将在appVersion
中创建一个Chart.yaml
字段,并在image.tag
中创建一个values.yaml
字段。
出于调试目的,在部署时设置image.tag
很方便,而不必创建新图表。但是,否则,我将它们保持同步,因为我想在查看helm list
的输出时看到Docker映像的真实版本。
尽管需要调试,是否有理由在部署文件中使用{{ .Values.image.tag }}
而不是{{ .Chart.AppVersion }}
?
答案 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使用版本号作为发行标记。存储库中的软件包通过名称加上版本来标识。