仅限 2.x 图表版本
additionalManifests 功能仅在基于 v2.x 子图表的 Helm 图表中可用。additionalManifests 可让你在部署 ClickStack 图表的同时一并部署任意 Kubernetes 对象。可用于图表未原生提供模板的资源,例如 NetworkPolicy、HorizontalPodAutoscaler、ServiceAccount、PodMonitor、自定义 Ingress 对象,或任何其他 Kubernetes API 对象。
工作原理
additionalManifests 中的每一项都是一份完整的 Kubernetes 资源定义。该 图表 会:
- 遍历列表中的每一项
- 将该项转换为 YAML (
toYaml) - 使用 Helm 的
tpl对 YAML 中的模板表达式进行求值
.Release.Name、.Release.Namespaceinclude "clickstack.fullname" .及其他 图表 辅助函数.Values.*
values 文件约束
additionalManifests 在 values 文件中配置,而 values 文件会在 tpl 运行前先按 YAML 解析。
- values 文件中的任何
{{ ... }}都必须放在带引号的字符串中 - 结构性模板块不是合法的 values YAML (例如,单独使用
{{- include ... | nindent ... }}) - 对于非字符串字段 (例如数字端口) ,请使用字面量值或命名端口
- 如果需要结构性模板,请使用外层 图表 模板,而不要直接使用原始 values 文件
可用的 图表 辅助函数
templates/_helpers.tpl 中:
| Helper | Description | Values-file usage |
|---|---|---|
clickstack.name | 图表 名称 (截断为 63 个字符) | 可安全用于带引号的标量值 |
clickstack.fullname | 带 Release 前缀的名称 | 可安全用于带引号的标量值 |
clickstack.chart | 图表 名称 + 版本 | 可安全用于带引号的标量值 |
clickstack.selectorLabels | 选择器标签块 | 仅限包装器 图表 模板 |
clickstack.labels | 标准标签块 | 仅限包装器 图表 模板 |
clickstack.mongodb.fullname | MongoDB CR 名称 | 可安全用于带引号的标量值 |
clickstack.clickhouse.fullname | ClickHouse CR 名称 | 可安全用于带引号的标量值 |
clickstack.otel.fullname | OTel collector 名称 | 可安全用于带引号的标量值 |
示例
ServiceAccount
NetworkPolicy
HorizontalPodAutoscaler
PodMonitor (Prometheus Operator)
AWS ALB 入口
TargetGroupBinding
TargetGroupBinding 资源的 ALB 场景:
高级:封装 图表 模板
include "clickstack.labels" . | nindent 4 这样的结构辅助,应通过封装 图表 的模板 (templates/*.yaml) 来渲染,而不要把这些块直接放进 values 文件中。
示例封装 图表 模板片段:
提示
Helm 钩子
additionalManifests 条目都会渲染为独立的 YAML 文档。你可以添加 Helm 钩子注解来控制安装/升级顺序:
CRD 顺序
PodMonitor) ,则必须确保这些 CRD 在安装或升级前已存在于集群中。
合并多个资源
additionalManifests 是一个列表。各项会按列表顺序渲染,并且每一项都会成为一个单独的 YAML 文档。
后续步骤
- Helm 主指南 - 基本安装
- 配置指南 - API 密钥、Secret 和入口
- Cloud 部署 - GKE、EKS 和 AKS 配置
- ClickStack Helm 图表仓库 - 图表源代码和配置值参考