跳转到主要内容
仅限 2.x 图表版本additionalManifests 功能仅在基于 v2.x 子图表的 Helm 图表中可用。
additionalManifests 可让你在部署 ClickStack 图表的同时一并部署任意 Kubernetes 对象。可用于图表未原生提供模板的资源,例如 NetworkPolicyHorizontalPodAutoscalerServiceAccountPodMonitor、自定义 Ingress 对象,或任何其他 Kubernetes API 对象。

工作原理

additionalManifests 中的每一项都是一份完整的 Kubernetes 资源定义。该 图表 会:
  1. 遍历列表中的每一项
  2. 将该项转换为 YAML (toYaml)
  3. 使用 Helm 的 tpl 对 YAML 中的模板表达式进行求值
模板表达式可以引用:
  • .Release.Name.Release.Namespace
  • include "clickstack.fullname" . 及其他 图表 辅助函数
  • .Values.*

values 文件约束

additionalManifests 在 values 文件中配置,而 values 文件会在 tpl 运行前先按 YAML 解析。
  • values 文件中的任何 {{ ... }} 都必须放在带引号的字符串中
  • 结构性模板块不是合法的 values YAML (例如,单独使用 {{- include ... | nindent ... }})
  • 对于非字符串字段 (例如数字端口) ,请使用字面量值或命名端口
  • 如果需要结构性模板,请使用外层 图表 模板,而不要直接使用原始 values 文件

可用的 图表 辅助函数

这些辅助函数定义在 templates/_helpers.tpl 中:
HelperDescriptionValues-file usage
clickstack.name图表 名称 (截断为 63 个字符)可安全用于带引号的标量值
clickstack.fullname带 Release 前缀的名称可安全用于带引号的标量值
clickstack.chart图表 名称 + 版本可安全用于带引号的标量值
clickstack.selectorLabels选择器标签块仅限包装器 图表 模板
clickstack.labels标准标签块仅限包装器 图表 模板
clickstack.mongodb.fullnameMongoDB CR 名称可安全用于带引号的标量值
clickstack.clickhouse.fullnameClickHouse CR 名称可安全用于带引号的标量值
clickstack.otel.fullnameOTel collector 名称可安全用于带引号的标量值

示例

ServiceAccount

NetworkPolicy

限制流向 HyperDX pod (容器组) 的入站流量:

HorizontalPodAutoscaler

PodMonitor (Prometheus Operator)

AWS ALB 入口

使用 AWS Load Balancer Controller 时,请禁用该 图表 内置的 nginx 入口,并定义自定义的 ALB 入口:
有关包含内部 OTel collector 入口和 HPA 的完整 ALB 配置示例,请参阅 ALB 示例配置值

TargetGroupBinding

对于需要显式指定 TargetGroupBinding 资源的 ALB 场景:

高级:封装 图表 模板

如果你需要像 include "clickstack.labels" . | nindent 4 这样的结构辅助,应通过封装 图表 的模板 (templates/*.yaml) 来渲染,而不要把这些块直接放进 values 文件中。 示例封装 图表 模板片段:

提示

Helm 钩子

每个 additionalManifests 条目都会渲染为独立的 YAML 文档。你可以添加 Helm 钩子注解来控制安装/升级顺序:

CRD 顺序

如果附加清单包含自定义资源 (例如 PodMonitor) ,则必须确保这些 CRD 在安装或升级前已存在于集群中。

合并多个资源

additionalManifests 是一个列表。各项会按列表顺序渲染,并且每一项都会成为一个单独的 YAML 文档。

后续步骤

最后修改于 2026年7月1日