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

Tob*_*ann 6 kubernetes-helm

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

出于调试目的,可以方便地image.tag在部署时进行设置,而不必创建新图表。但是,否则,我会保持它们同步,因为我想在查看helm list.

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

Fil*_*lov 10

如果对于您的版本控制需求,它们是相同的,那么没关系。

有些人甚至建议将其作为最佳实践使用

image: "{{ .Values.image.repository }}:{{ default .Chart.AppVersion .Values.image.tag }}"
Run Code Online (Sandbox Code Playgroud)

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

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

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

{{ .Chart.version }}- 如果您正在开发图表,则需要对其进行版本控制。对模板的每次更改都应导致版本增加。Helm 文档说:

每个图表都必须有一个版本号。版本必须遵循 SemVer 2 标准。与 Helm Classic 不同,Kubernetes Helm 使用版本号作为发布标记。存储库中的包由名称加版本标识。