Дополнительные манифесты Helm
Функция additionalManifests доступна только в Helm-чарте v2.x на основе субчартов.
Параметр additionalManifests позволяет развертывать произвольные объекты Kubernetes вместе с чартом ClickStack. Используйте его для ресурсов, для которых в чарте нет встроенных шаблонов, например NetworkPolicy, HorizontalPodAutoscaler, ServiceAccount, PodMonitor, пользовательских объектов Ingress или любых других объектов Kubernetes API.
Как это работает
Каждая запись в additionalManifests — это полное определение ресурса Kubernetes. Чарт:
- Обрабатывает по очереди каждую запись в списке
- Преобразует запись в YAML (
toYaml) - Вычисляет выражения шаблона в этом YAML с помощью Helm
tpl
Выражения шаблона могут ссылаться на:
.Release.Name,.Release.Namespaceinclude "clickstack.fullname" .и другие хелперы чарта.Values.*
Ограничения файла values
additionalManifests настраивается в файле values, а файлы values обрабатываются как YAML до запуска tpl.
- Любые
{{ ... }}в файле values должны находиться внутри строки в кавычках - Структурные блоки шаблонов недопустимы в YAML-файле values (например,
{{- include ... | nindent ... }}сам по себе) - Для нестроковых полей (например, числовых портов) используйте литеральные значения или именованные порты
- Если вам нужна структурная шаблонизация, используйте шаблон обёрточного чарта вместо обычного файла values
Доступные хелперы чарта
Эти хелперы определены в templates/_helpers.tpl:
| Хелпер | Описание | Использование в файле values |
|---|---|---|
clickstack.name | Имя чарта (усечено до 63 символов) | Безопасно использовать в строковых скалярах в кавычках |
clickstack.fullname | Имя с учётом релиза | Безопасно использовать в строковых скалярах в кавычках |
clickstack.chart | Имя чарта + версия | Безопасно использовать в строковых скалярах в кавычках |
clickstack.selectorLabels | Блок меток селектора | Только для шаблонов wrapper чарта |
clickstack.labels | Стандартный блок меток | Только для шаблонов wrapper чарта |
clickstack.mongodb.fullname | Имя CR MongoDB | Безопасно использовать в строковых скалярах в кавычках |
clickstack.clickhouse.fullname | Имя CR ClickHouse | Безопасно использовать в строковых скалярах в кавычках |
clickstack.otel.fullname | Имя OTel collector | Безопасно использовать в строковых скалярах в кавычках |
Примеры
ServiceAccount
NetworkPolicy
Ограничьте входящий трафик к подам HyperDX:
HorizontalPodAutoscaler
PodMonitor (Prometheus Operator)
Входной шлюз AWS ALB
При использовании AWS Load Balancer Controller отключите встроенный в чарт входной шлюз nginx и настройте пользовательский входной шлюз ALB:
Полный пример настройки ALB, включая внутренний входной шлюз OTel collector и HPA, см. в примере значений ALB.
TargetGroupBinding
В сценариях с ALB, где требуются явные ресурсы TargetGroupBinding:
Продвинутое: шаблоны обёрточных чартов
Если вам нужны структурные хелперы, такие как include "clickstack.labels" . | nindent 4, генерируйте их через шаблон обёрточного чарта (templates/*.yaml), а не вставляйте эти блоки напрямую в файлы values.
Пример фрагмента шаблона обёрточного чарта:
Рекомендации
Хуки Helm
Каждая запись additionalManifests формируется как отдельный YAML-документ. Вы можете добавить аннотации хуков Helm, чтобы управлять порядком установки и обновления:
Порядок применения CRD
Если в дополнительные манифесты входят пользовательские ресурсы (например, PodMonitor), соответствующие CRD уже должны существовать в кластере до установки или обновления.
Объединение нескольких ресурсов
additionalManifests — это список. Его элементы обрабатываются по порядку, и каждый из них становится отдельным YAML-документом.
Следующие шаги
- Основное руководство по Helm - Базовая установка
- Руководство по конфигурации - API-ключи, секреты и входной шлюз
- Развертывания в Cloud - Конфигурации GKE, EKS и AKS
- Репозиторий Helm-чартов ClickStack - Исходный код чартов и справочник по параметрам values