Комментарии 9
Код картинками ужасно - поиск не работает, в блокнот не скопировать. Не делайте так, пожалуйста
Пример 3: В условиях можно использовать функции Go templates:
интересно, а не лучше values.yaml для каждой среды готовить свой и в нем как раз и указывать значение requests, например. Аргументация простая. Если у вас меняется количество сред или их параметры - вам придется менять содержимое темплейтов и релизить новую версию чарта, а это больно, но кейс достаточно частый. Поэтому как в примере ДЕЛАТЬ НЕ НАДО.
Прошу прощения, но этот вариант описан буквально в следующем примере. (см. Впрочем, подобные конструкции можно оптимизировать при помощи функции toYaml)
Также хочу заметить что отдельный values.yaml для каждой среды, на мой взгляд, не очень хорошо. В этом случае теряется наглядность. В прошлой статье (https://habr.com/ru/company/dataart/blog/588258/) я давал пример каким образом можно создать один values.yaml для всех окружений при помощи go templates (см. 2.3. Хорошие практики values.yaml).
здесь дискуссионный вопрос - хотим ли мы все возможные среды описывать в одном values.yaml и подключать конкретные наборы ключей или мы хотим описывать их в отдельных values.yaml В любом случае валидации параметров и их значений нет ни там, ни там (кстати, какие-то рудиментарные функции в хельме для этого есть). И вот на эту тему было бы интересно подискутировать - как сделать удобный helm чарт, чтобы разработчики без особого погружения могли этим пользоваться и не ломать себе руки об острые углы инструмента. В статье каких-то конкретных рекомендаций, увы, нет. Описаны определенные практики, но вот когда и как их применять - нет.
По большому счету, программисту программисту нужно знать только место где можно описать свой параметр, и чтобы он при сборке попал в приложение. Что-то наподобие .env файла.
В случае хелма, values.yaml с разбивкой по энвайрментам с блоком кода для динамического формирования секции env, аналогичным тому который я привёл в пункте 2.3 первой части статьи, на 90% решают эту задачу (я даже сделал ремарку в статье: Этот способ описания очень любят разработчики, поскольку оно достаточно простое и наглядное.). Остальные 10% это секретные переменные, с которыми нужно чуть больше телодвижений.
К сожалению, возможности разметки на хабре не позволяют расставлять акценты в коде так как мне бы этого хотелось. В дисклеймере к статье это указано. Также там дана ссылка на репозиторий на гитхабе где эти примеры содержатся в текстовом виде, доступном для поиска.
Как-то к концу этой статьи я вообще перестал понимать зачем нужны values, template, charts... Теперь всё смешалось в моей голове %)
Погружение в Helm Package Manager. Часть вторая