我可以在 Helm 图表中找到 fullnameOverride 和 nameOverride。请通过示例帮助澄清这两者之间的区别。
Dav*_*aze 17
nameOverride替换Chart.yaml文件中图表的名称,当它用于构造 Kubernetes 对象名称时。 fullnameOverride完全替换生成的名称。
这些来自Helm 为新图表提供的模板。模板中的一个典型对象被命名为
name: {{ include "<CHARTNAME>.fullname" . }}
Run Code Online (Sandbox Code Playgroud)
如果您使用具有此名称的部署安装图表,并且Chart.yaml文件指定的位置name: chart-name...
helm install release-name .,部署将被命名为 release-name-chart-namehelm install release-name . --set nameOverride=name-override,部署将被命名为 release-name-name-overridehelm 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 }}
Run Code Online (Sandbox Code Playgroud)
因此,如果fullnameOverride提供,则完全替换模板中的其余逻辑。否则,名称由发布名称和图表名称构成,其中nameOverride覆盖图表名称。