Helm — Справочник функций

Ctrl+F — твой лучший друг здесь.

Строковые

ФункцияОписаниеПример
upperВ верхний регистр{{ "hello" | upper }}HELLO
lowerВ нижний регистр{{ "Hello" | lower }}hello
titleКаждое слово с заглавной{{ "hello world" | title }}Hello World
trimУбрать пробелы по краям{{ " hi " | trim }}hi
trimSuffixУбрать суффикс{{ "app-" | trimSuffix "-" }}app
trimPrefixУбрать префикс{{ "v1.2.0" | trimPrefix "v" }}1.2.0
truncОбрезать до N символов{{ "longname" | trunc 4 }}long
replaceЗамена подстроки{{ "foo_bar" | replace "_" "-" }}foo-bar
containsПроверка вхождения{{ if contains "tls" .Values.mode }}
hasPrefixНачинается с{{ if hasPrefix "https" .Values.url }}
hasSuffixЗаканчивается на{{ if hasSuffix ".yaml" .name }}
repeatПовторить N раз{{ "ab" | repeat 3 }}ababab
substrПодстрока (start, end, str){{ substr 0 3 "hello" }}hel
nospaceУбрать все пробелы{{ "h e l l o" | nospace }}hello
snakecasecamelCase → snake_case{{ "userName" | snakecase }}user_name
camelcasesnake_case → CamelCase{{ "user_name" | camelcase }}UserName
kebabcasecamelCase → kebab-case{{ "userName" | kebabcase }}user-name
quoteОбернуть в двойные кавычки{{ .Values.env | quote }}"production"
squoteОбернуть в одинарные{{ .Values.env | squote }}'production'
catСклеить через пробел{{ cat "hello" "world" }}hello world
printfФорматирование{{ printf "%s:%s" .repo .tag }}
indentОтступ N пробелов{{ .data | indent 4 }}
nindentNewline + отступ{{ .data | nindent 4 }}

Числовые

ФункцияОписаниеПример
intПривести к int{{ .Values.port | int }}
int64Привести к int64{{ .Values.size | int64 }}
float64Привести к float{{ .Values.ratio | float64 }}
addСложение{{ add .Values.port 1 }}
subВычитание{{ sub 10 3 }}7
mulУмножение{{ mul 3 4 }}12
divДеление{{ div 10 3 }}3
modОстаток{{ mod 10 3 }}1
maxМаксимум{{ max .Values.replicas 1 }}
minМинимум{{ min .Values.replicas 10 }}
ceilОкругление вверх{{ ceil 1.1 }}2
floorОкругление вниз{{ floor 1.9 }}1
roundОкругление (precision){{ round 3.1416 2 }}3.14

Логические и сравнение

ФункцияОписаниеПример
defaultЗначение по умолчанию{{ .Values.tag | default "latest" }}
emptyПроверка на пустоту{{ if empty .Values.host }}
notОтрицание{{ if not .Values.debug }}
andЛогическое И{{ if and .Values.tls .Values.host }}
orЛогическое ИЛИ{{ if or .Values.dev .Values.test }}
coalesceПервое непустое{{ coalesce .Values.tag .Chart.AppVersion "latest" }}
ternaryТернарный оператор{{ ternary "yes" "no" .Values.enabled }}
eqРавно{{ if eq .Values.env "prod" }}
neНе равно{{ if ne .Values.env "test" }}
lt / leМеньше / меньше или равно{{ if lt .Values.replicas 3 }}
gt / geБольше / больше или равно{{ if gt .Values.replicas 1 }}

Списки

ФункцияОписаниеПример
listСоздать список{{ list "a" "b" "c" }}
firstПервый элемент{{ first .Values.hosts }}
lastПоследний элемент{{ last .Values.hosts }}
restВсе кроме первого{{ rest .Values.hosts }}
initialВсе кроме последнего{{ initial .Values.hosts }}
appendДобавить элемент{{ append .Values.list "new" }}
prependДобавить в начало{{ prepend .Values.list "first" }}
concatОбъединить списки{{ concat .Values.a .Values.b }}
hasЭлемент в списке{{ if has "admin" .Values.roles }}
withoutСписок без элемента{{ without .Values.list "bad" }}
uniqУникальные элементы{{ .Values.tags | uniq }}
sortAlphaСортировка строк{{ .Values.names | sortAlpha }}
joinСклеить в строку{{ .Values.args | join "," }}
lenДлина списка{{ len .Values.hosts }}
compactУбрать пустые элементы{{ .Values.list | compact }}

Словари

ФункцияОписаниеПример
dictСоздать словарь{{ dict "key" "value" "k2" "v2" }}
getПолучить по ключу{{ get .Values.config "db" }}
setУстановить ключ{{ set .Values.labels "env" "prod" }}
unsetУдалить ключ{{ unset .Values.labels "temp" }}
hasKeyПроверить наличие ключа{{ if hasKey .Values.config "db" }}
keysСписок ключей{{ keys .Values.config | sortAlpha }}
valuesСписок значений{{ values .Values.config }}
mergeСлить (первый приоритетнее){{ merge .Values.overrides .Values.defaults }}
mergeOverwriteСлить (последний приоритетнее){{ mergeOverwrite .Values.defaults .Values.overrides }}
pickВыбрать ключи{{ pick .Values.all "a" "b" }}
omitИсключить ключи{{ omit .Values.all "secret" }}
deepCopyГлубокая копия{{ deepCopy .Values.config }}

Преобразование типов

ФункцияОписаниеПример
toYamlСтруктура → YAML-строка{{ .Values.resources | toYaml }}
toJsonСтруктура → JSON{{ .Values.config | toJson }}
toPrettyJsonСтруктура → JSON с отступами{{ .Values.config | toPrettyJson }}
toTomlСтруктура → TOML{{ .Values.config | toToml }}
fromYamlYAML-строка → структура{{ .data | fromYaml }}
fromJsonJSON-строка → структура{{ .data | fromJson }}
toStringПривести к строке{{ .Values.port | toString }}
atoiСтрока → int{{ "8080" | atoi }}

Криптография и кодирование

ФункцияОписаниеПример
b64encBase64 encode{{ .Values.password | b64enc }}
b64decBase64 decode{{ .encoded | b64dec }}
sha1sumSHA-1 хеш{{ .Values.data | sha1sum }}
sha256sumSHA-256 хеш{{ .Values.data | sha256sum }}
randAlphaNumСлучайная строка (буквы + цифры){{ randAlphaNum 16 }}
randAlphaСлучайная строка (только буквы){{ randAlpha 8 }}
randNumericСлучайная строка (только цифры){{ randNumeric 6 }}
genPrivateKeyRSA/ECDSA private key{{ genPrivateKey "rsa" }}
htpasswdApache htpasswd{{ htpasswd "user" "pass" }}

Валидация

ФункцияОписаниеПример
requiredОшибка если пусто{{ required "image.tag required" .Values.image.tag }}
failЯвная ошибка рендеринга{{ fail "unsupported configuration" }}
kindOfТип значения{{ kindOf .Values.port }}float64
kindIsПроверка типа{{ if kindIs "string" .Values.tag }}
typeOfGo-тип значения{{ typeOf .Values.config }}

Дата и время

ФункцияОписаниеПример
nowТекущее время{{ now }}
dateФорматирование{{ now | date "2006-01-02" }}
dateModifyСдвиг даты{{ now | dateModify "+2h" }}
toDateПарсинг строки{{ toDate "2006-01-02" "2026-03-15" }}
unixEpochВ Unix timestamp{{ now | unixEpoch }}

Примечание: Go использует reference-дату Mon Jan 2 15:04:05 MST 2006 для форматирования. 2006-01-02 — не произвольный формат, а конкретные числа из reference-даты.

Полезные однострочники

# Имя ресурса (K8s лимит 63 символа, lowercase, без trailing -)
{{ printf "%s-%s" .Release.Name .Chart.Name | lower | trunc 63 | trimSuffix "-" }}
 
# Автоматический rollout при изменении ConfigMap
checksum/config: {{ include (print $.Template.BasePath "/configmap.yaml") . | sha256sum }}
 
# Image с fallback на AppVersion
image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}"
 
# Все env из map
{{- range $k, $v := .Values.env }}
- name: {{ $k | upper }}
  value: {{ $v | quote }}
{{- end }}
 
# Опциональный блок целиком
{{- with .Values.tolerations }}
tolerations:
  {{- toYaml . | nindent 2 }}
{{- end }}