Helm additional manifests
The additionalManifests feature is available in the v2.x subchart-based Helm chart only.
The additionalManifests value lets you deploy arbitrary Kubernetes objects alongside the ClickStack chart. Use it for resources that the chart does not template natively, such as NetworkPolicy, HorizontalPodAutoscaler, ServiceAccount, PodMonitor, custom Ingress objects, or any other Kubernetes API object.
How it works
Each entry in additionalManifests is a complete Kubernetes resource definition. The chart:
- Iterates over each entry in the list
- Converts the entry to YAML (
toYaml) - Evaluates template expressions in that YAML using Helm
tpl
Template expressions can reference:
.Release.Name,.Release.Namespaceinclude "clickstack.fullname" .and other chart helpers.Values.*
Values file constraints
additionalManifests is configured in a values file, and values files are parsed as YAML before tpl runs.
- Any
{{ ... }}in a values file must be inside a quoted string - Structural template blocks are not valid values YAML (for example,
{{- include ... | nindent ... }}by itself) - For non-string fields (for example, numeric ports), use literal values or named ports
- If you need structural templating, use a wrapper chart template instead of a raw values file
Available chart helpers
These helpers are defined in templates/_helpers.tpl:
| Helper | Description | Values-file usage |
|---|---|---|
clickstack.name | Chart name (truncated to 63 chars) | Safe in quoted scalars |
clickstack.fullname | Release-qualified name | Safe in quoted scalars |
clickstack.chart | Chart name + version | Safe in quoted scalars |
clickstack.selectorLabels | Selector labels block | Wrapper chart templates only |
clickstack.labels | Standard labels block | Wrapper chart templates only |
clickstack.mongodb.fullname | MongoDB CR name | Safe in quoted scalars |
clickstack.clickhouse.fullname | ClickHouse CR name | Safe in quoted scalars |
clickstack.otel.fullname | OTEL Collector name | Safe in quoted scalars |
Examples
ServiceAccount
NetworkPolicy
Restrict ingress traffic to HyperDX pods:
HorizontalPodAutoscaler
PodMonitor (Prometheus Operator)
AWS ALB Ingress
When using the AWS Load Balancer Controller, disable the chart's built-in nginx Ingress and define a custom ALB Ingress:
For a complete ALB setup example including internal OTEL collector ingress and HPA, see the ALB example values.
TargetGroupBinding
For ALB scenarios that require explicit TargetGroupBinding resources:
Advanced: wrapper chart templates
If you need structural helpers like include "clickstack.labels" . | nindent 4, render them from a wrapper chart template (templates/*.yaml) instead of putting those blocks directly in values files.
Example wrapper chart template snippet:
Tips
Helm hooks
Each additionalManifests entry is rendered as a separate YAML document. You can add Helm hook annotations to control install/upgrade ordering:
CRD ordering
If your additional manifests include custom resources (for example, PodMonitor), the CRDs must already exist in the cluster before install/upgrade.
Combining multiple resources
additionalManifests is a list. Entries are rendered in list order, and each entry becomes its own YAML document.
Next steps
- Main Helm guide - Basic installation
- Configuration guide - API keys, secrets, and ingress
- Cloud deployments - GKE, EKS, and AKS configurations
- ClickStack Helm charts repository - Chart source code and values reference