Helm中的fullnameOverride和nameOverride有什么区别?

问题描述

我可以在Helm图表中同时找到fullnameOverride和nameOverride。请举例说明这两者之间的区别。

解决方法

使用

nameOverride替换Chart.yaml文件中图表的名称时,该名称用于构造Kubernetes对象名称。 fullnameOverride完全替换了生成的名称。

这些来自the template provided by Helm for new charts。模板中的一个典型对象名为

name: {{ include "<CHARTNAME>.fullname" . }}

如果使用具有此名称的部署来安装图表,并且Chart.yaml文件在其中指定name: chart-name ...

  • helm install release-name .,部署将命名为release-name-chart-name
  • helm install release-name . --set nameOverride=name-override,部署将命名为release-name-name-override
  • helm install release-name . --set fullnameOverride=fullname-override,部署将命名为fullname-override

生成的...fullname模板是(仍然从上面的链接中省略了一个代码分支)

{{- define "<CHARTNAME>.fullname" -}}
{{- if .Values.fullnameOverride }}
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }}
{{- else }}
{{- $name := default .Chart.Name .Values.nameOverride }}
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }}
{{- end }}
{{- end }}

因此,如果提供了fullnameOverride,则它将完全替换模板中其余的逻辑。否则,将根据发行版名称和图表名称来构造名称,其中nameOverride会覆盖图表名称。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...