В чем разница между fullnameOverride и nameOverride в Helm?

#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. Считается ли (всегда) плохой практикой переопределять его?