#azure-devops #kubernetes-helm
Вопрос:
Я мог бы найти как полное имя, так и имя в таблице управления.Пожалуйста, помогите прояснить, в чем разница между этими двумя, на примере.
Ответ №1:
nameOverride
заменяет имя диаграммы в Chart.yaml
файле, когда оно используется для построения имен объектов Kubernetes. fullnameOverride
полностью заменяет сгенерированное имя.
Они взяты из шаблона, предоставленного Helm для новых диаграмм. Типичный объект в шаблонах называется
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
переопределяет имя диаграммы.
Комментарии:
1. Считается ли (всегда) плохой практикой переопределять его?