Согласно официальной документации руля есть термины Предопределенные значения и Встроенные объекты
Встроенные значения всегда начинайте с заглавной буквы. Это соответствует соглашению об именах Go. Когда вы создаете свои собственные имена, вы можете использовать соглашение, которое подходит вашей команде
Список обязательных заглавных букв встроенных значений
Release
: Это Объект описывает сам релиз. Внутри него есть несколько объектов: Release.Name
: имя выпуска Release.Namespace
: пространство имен, в которое должно быть выпущено (если манифест не переопределяет) Release.IsUpgrade
: устанавливается на true
, если текущая операция является обновлением или откатом. Release.IsInstall
: устанавливается на true
, если текущая операция является установкой. Release.Revision
: номер редакции для этого выпуска. При установке это значение равно 1, и оно увеличивается с каждым обновлением и откатом. Release.Service
: служба, выполняющая отображение текущего шаблона. На Helm это всегда Helm
.
Values
: значения, передаваемые в шаблон из файла values.yaml
и из предоставленных пользователем файлов. По умолчанию Values
пусто. Chart
: Содержимое файла Chart.yaml
. Любые данные в Chart.yaml
будут доступны здесь. Например, {{ .Chart.Name }}-{{ .Chart.Version }}
напечатает mychart-0.1.0
. Files
: это обеспечивает доступ ко всем не специальным файлам в диаграмме. Хотя вы не можете использовать его для доступа к шаблонам, вы можете использовать его для доступа к другим файлам в диаграмме. Подробнее см. Раздел Доступ к файлам . Files.Get
- это функция для получения файла по имени (.Files.Get config.ini
) Files.GetBytes
- это функция для получения содержимого файла в виде массива байтов, а не как строка. Это полезно для таких вещей, как изображения. Files.Glob
- это функция, которая возвращает список файлов, имена которых соответствуют заданному шаблону оболочки. Files.Lines
- это функция, которая читает файл построчно. Это полезно для перебора каждой строки в файле. Files.AsSecrets
- это функция, которая возвращает тела файла в виде строк в кодировке Base 64. Files.AsConfig
- это функция, которая возвращает файл тела в виде карты YAML.
Capabilities
: предоставляет информацию о том, какие возможности поддерживает кластер Kubernetes. Capabilities.APIVersions
- это набор версий. Capabilities.APIVersions.Has $version
указывает, доступна ли версия (например, batch/v1
) или ресурс (например, apps/v1/Deployment
) в кластере. Capabilities.KubeVersion
и Capabilities.KubeVersion.Version
- версия Kubernetes. Capabilities.KubeVersion.Major
- основная версия Kubernetes. Capabilities.KubeVersion.Minor
- дополнительная версия Kubernetes.
Template
: содержит информацию о текущем выполняемом шаблоне Name
: путь к файлу в пространстве имен с текущим шаблоном (например, mychart/templates/mytemplate.yaml
) BasePath
: Путь в пространстве имен к каталогу шаблонов текущего графика (например, mychart/templates
).
Маленький пример:
apiVersion: v1
kind: Service
metadata:
name: {{ template "fullname" . }}
labels:
chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}"
spec:
type: {{ .Values.service.type }}
ports:
- port: {{ .Values.service.externalPort }}
targetPort: {{ .Values.service.internalPort }}
protocol: TCP
name: {{ .Values.service.name }}
selector:
app: {{ template "fullname" . }}
И снова - не стесняйтесь использовать любые другие заданные вручную значения в нижнем регистре. Надеюсь, это поможет