ещё что-нибудь. Могу ли я как-нибудь в моменте деплоя внутри heml рендера получить хэшсумму файла шаблона (./templates/*)?
Через .Files все системный файлы не видны.
Вижу единственное решение это предварительно делать копию всей директории templates допустим в manifests и оттуда читать файл и брать его хэш сумму, но костыль капец (((
Может есть ещё варианты?
Через $.Files.Get или include должно работать. Что значит системные файлы не видны?
Через Files.Get не видны файлы Chart.yaml templates/* все остальное видно. А если через инклюд делать, то он пытается рендериться и падает. Может другой вариант предложите. Задача такая, запускать джобу в случае изменения, зашил в название джабы контент тэг и обработал sha256sum, но ещё хочу сделать чтобы в случае изменения манифеста тоже хэштсумма менялась и ддоба запускалась
Через include $.Template падает?
Вынесите spec джобы в отдельный файл. Снимите с него чексумму, добавьте в имя джобы.
Ну это также сделано, плюс сделал расчет хэшсумм снаружи и передаю через доп set. Я думал мало ли, изза того что у нас же nelm а не хелм))) можно было бы вырезать эти ограничения)))
А можно без --set. Типа так: # .helm/templates/myjob.yaml {{- $spec := include (print $.Template.BasePath "/myjobspec.yaml") . }} metadata: name: myjob-{{ $spec | adler32sum }} spec: {{ $spec | nindent 2 }}
kind: Deployment spec: template: metadata: annotations: checksum/config: {{ include (print $.Template.BasePath "/configmap.yaml") . | sha256sum }} [...] Вам не такое, случайно, нужно? Из документации хелма
спасибо за совет попробую
не совсем. мне грубоговоря надо из .helm/templates/myjob.yaml вызвать этот же файл. и получается рекурсия и все валится.
А зачем вам хеш темплейта?
Обсуждают сегодня