#kubernetes #kubernetes-helm
#kubernetes #kubernetes-рулевой
Вопрос:
У меня есть файл значений, например:
secrets:
file.tst |
{
content ....
}
И я хотел бы получить имя file.tst в шаблоне yaml. Я уже пробовал с:
{{ .Values.secrets.secrets |trimSuffix "-" }}
Но это не работает.
Комментарии:
1. Это
.Values.secrets | keys | first
то, что вам нужно? Или вам нужно как-то заглянуть внутрь содержимого?2. Привет, Дэвид. Спасибо, это работает для меня!
3. Еще один вопрос, если у меня будет больше файлов, подобных этому file.tst — могу ли я получить их из диапазона? И как я могу создать оператор «if», чтобы проверить количество файлов в списке? С уважением!, Майкл
Ответ №1:
При таком values.yaml
макете .Values.secrets
сам является словарем со строковыми ключами и строковыми значениями. Helm включает в себя множество функций, которые могут работать с деталями из них. В частности, вы можете вызвать keys
, чтобы получить ключи словаря в виде списка и first
получить первый элемент из списка.
firstFilename: "{{ .Values.secrets | keys | first }}"
Вы также можете использовать встроенную range
функцию для перебора либо самой карты, либо списка ключей.
hashes:
{{- $filename, $contents := range .Values.secrets }}
{{ $filename }}: "{{ sha256sum $contents }}"
{{- end }}