Node Agent Helm Values
6 minute read
These values are specific to the node agent chart (edgedelta/edgedelta). For values shared across all charts, see Shared Helm Values.
helm upgrade edgedelta edgedelta/edgedelta -i \
--set secretApiKey.value=<pipeline-id> \
-n edgedelta --create-namespace
Deployment
| Variable | Default | Description |
|---|---|---|
deployment.kind | DaemonSet | DaemonSet deploys one agent per node. Deployment creates a scalable set of agent pods. |
deployment.replicas | 1 | Pod count when kind=Deployment. Mutually exclusive with autoscaling. |
See Installing as a Deployment.
Autoscaling
Requires deployment.kind=Deployment. DaemonSets do not support HPA.
| Variable | Default | Description |
|---|---|---|
deployment.autoscaling.enabled | false | Create a HorizontalPodAutoscaler for processor agents. |
deployment.autoscaling.external | false | true if using an external autoscaler like KEDA. |
deployment.autoscaling.minReplicas | 1 | Minimum replica count. |
deployment.autoscaling.maxReplicas | 10 | Maximum replica count. |
deployment.autoscaling.targetForCPUUtilizationPercentage | 85 | Target average CPU utilization. |
deployment.autoscaling.targetForMemoryUtilizationPercentage | (empty) | Target average memory utilization. |
deployment.autoscaling.customMetric | {} | Custom metrics for HPA targeting. |
deployment.autoscaling.behavior.scaleDown.stabilizationWindowSeconds | 300 | Delay before scaling down to avoid flapping. |
Example — autoscaling deployment:
deployment:
kind: Deployment
autoscaling:
enabled: true
minReplicas: 1
maxReplicas: 5
targetForCPUUtilizationPercentage: 80
behavior:
scaleDown:
stabilizationWindowSeconds: 300
Topology Spread Constraints
| Variable | Default | Description |
|---|---|---|
deployment.topologySpreadConstraints | [] | Spread processor pods across topology domains (zones, regions). |
Example:
deployment:
kind: Deployment
topologySpreadConstraints:
- maxSkew: 1
topologyKey: topology.kubernetes.io/zone
whenUnsatisfiable: ScheduleAnyway
labelSelector:
matchLabels:
edgedelta/agent-type: processor
Compactor Agent
The compactor processes and compresses log data for downstream delivery.
| Variable | Default | Description |
|---|---|---|
compactorProps.enabled | true | Enable the compactor agent. |
compactorProps.port | 9199 | Listening port. |
compactorProps.replicas | 1 | Static replica count. Mutually exclusive with autoscaling. |
compactorProps.goMemLimit | "" | Go runtime memory limit. |
compactorProps.resources.limits.cpu | 2000m | CPU limit. |
compactorProps.resources.limits.memory | 2Gi | Memory limit. |
compactorProps.resources.requests.cpu | 200m | CPU request. |
compactorProps.resources.requests.memory | 300Mi | Memory request. |
compactorProps.tolerations | {} | Node tolerations. |
compactorProps.nodeSelector | {} | Node selector. |
compactorProps.priorityClassName | "" | PriorityClass. |
compactorProps.updateStrategy.type | RollingUpdate | Update strategy. |
compactorProps.topologySpreadConstraints | [] | Topology spread constraints. |
The compactor uses the chart’s top-level
imagesettings. There is nocompactorProps.image— see Image.
Compactor Autoscaling
| Variable | Default | Description |
|---|---|---|
compactorProps.autoscaling.enabled | false | Enable HPA for compactor agents. |
compactorProps.autoscaling.external | false | true if using an external autoscaler. |
compactorProps.autoscaling.minReplicas | 1 | Minimum replicas. |
compactorProps.autoscaling.maxReplicas | 10 | Maximum replicas. |
compactorProps.autoscaling.targetForCPUUtilizationPercentage | 85 | Target CPU. |
compactorProps.autoscaling.targetForMemoryUtilizationPercentage | (empty) | Target memory. |
compactorProps.autoscaling.customMetric | {} | Custom metrics. |
compactorProps.autoscaling.behavior.scaleDown.stabilizationWindowSeconds | 300 | Scale-down stabilization. |
Rollup Agent
The rollup agent handles metric aggregation and rollup.
| Variable | Default | Description |
|---|---|---|
rollUpProps.enabled | true | Enable the rollup agent. |
rollUpProps.port | 9200 | Listening port. |
rollUpProps.replicas | 2 | Static replica count. Mutually exclusive with autoscaling. |
rollUpProps.goMemLimit | "" | Go runtime memory limit. |
rollUpProps.resources.limits.cpu | 1000m | CPU limit. |
rollUpProps.resources.limits.memory | 1Gi | Memory limit. |
rollUpProps.resources.requests.cpu | 200m | CPU request. |
rollUpProps.resources.requests.memory | 256Mi | Memory request. |
rollUpProps.tolerations | {} | Node tolerations. |
rollUpProps.nodeSelector | {} | Node selector. |
rollUpProps.priorityClassName | "" | PriorityClass. |
rollUpProps.updateStrategy.type | RollingUpdate | Update strategy. |
rollUpProps.topologySpreadConstraints | [] | Topology spread constraints. |
The rollup uses the chart’s top-level
imagesettings. There is norollUpProps.image— see Image.
Rollup Autoscaling
| Variable | Default | Description |
|---|---|---|
rollUpProps.autoscaling.enabled | false | Enable HPA for rollup agents. |
rollUpProps.autoscaling.external | false | true if using an external autoscaler. |
rollUpProps.autoscaling.minReplicas | 2 | Minimum replicas. |
rollUpProps.autoscaling.maxReplicas | 10 | Maximum replicas. |
rollUpProps.autoscaling.targetForCPUUtilizationPercentage | 85 | Target CPU. |
rollUpProps.autoscaling.targetForMemoryUtilizationPercentage | (empty) | Target memory. |
rollUpProps.autoscaling.customMetric | {} | Custom metrics. |
rollUpProps.autoscaling.behavior.scaleDown.stabilizationWindowSeconds | 300 | Scale-down stabilization. |
Aggregator Agent
Deploys an extra aggregator agent to collect and aggregate metrics from processor agents.
| Variable | Default | Description |
|---|---|---|
aggregatorProps.enabled | false | Enable the aggregator agent. |
aggregatorProps.port | 9191 | Listening port. |
aggregatorProps.serviceDNSSuffix | svc.cluster.local | DNS suffix for constructing the aggregator service endpoint. |
aggregatorProps.enabledDataTypes.metric | true | Aggregate metrics. |
aggregatorProps.enabledDataTypes.cluster_pattern_and_sample | false | Aggregate cluster patterns and samples. |
aggregatorProps.enabledDataTypes.topk | false | Aggregate top-K data. |
aggregatorProps.usePersistentVolume | false | Use a PVC to persist aggregator state across restarts. |
aggregatorProps.storageClassName | "" | Storage class for the PVC. |
aggregatorProps.goMemLimit | "" | Go runtime memory limit. |
aggregatorProps.resources.limits.cpu | 2000m | CPU limit. |
aggregatorProps.resources.limits.memory | 2048Mi | Memory limit. |
aggregatorProps.resources.requests.cpu | 200m | CPU request. |
aggregatorProps.resources.requests.memory | 256Mi | Memory request. |
Service Exposure
Container Ports
Variable: ports (default: [])
Define additional container ports for incoming data. Use when the pipeline includes an input node (such as OTLP) that accepts external traffic.
Example:
ports:
- name: otlp-grpc
protocol: TCP
port: 4317
- name: otlp-http
protocol: TCP
port: 4318
Set exposeInHost: true on a port entry to bind directly to the node’s network interface via hostPort (DaemonSet only).
Push Service
Creates a Kubernetes Service (ed-data-supply-svc) that routes traffic to agent pods when ports are defined.
| Variable | Default | Description |
|---|---|---|
pushService.type | ClusterIP | Service type: ClusterIP, NodePort, or LoadBalancer. |
pushService.annotations | {} | Service annotations (e.g., cloud load balancer config). |
pushService.loadBalancerIP | "" | Static IP for LoadBalancer type. |
pushService.clusterIP | "" | Static ClusterIP. |
pushService.sessionAffinity | "" | Session affinity setting (ClientIP or empty). |
pushService.sessionAffinityTimeout | 10800 | Session affinity timeout in seconds. |
Example — LoadBalancer with NLB:
ports:
- name: otlp-grpc
protocol: TCP
port: 4317
pushService:
type: LoadBalancer
annotations:
service.beta.kubernetes.io/aws-load-balancer-type: "nlb"
service.beta.kubernetes.io/aws-load-balancer-internal: "true"
See Integrate Pipeline Types for a full deployment example.
Ingress
Configure a Kubernetes Ingress resource for the ports defined above. Requires an ingress controller.
| Variable | Default | Description |
|---|---|---|
ingress.enabled | false | Create an Ingress resource. |
ingress.class | "" | Ingress class name. |
ingress.annotations | {} | Ingress annotations. |
ingress.hosts | [] | Host and path configuration. |
ingress.tls | [] | TLS configuration. |
Example:
ingress:
enabled: true
class: nginx
hosts:
- host: otlp.example.com
paths:
- path: /
pathType: ImplementationSpecific
port:
number: 4317
tls:
- hosts:
- otlp.example.com
secretName: otlp-tls-secret
Persistence
The persistent cursor remembers the last read position in log files across agent restarts.
| Variable | Default | Description |
|---|---|---|
persistingCursorProps.enabled | true | Enable persistent cursor. |
persistingCursorProps.hostMountPath | /var/lib/edgedelta | Host path for cursor storage. |
persistingCursorProps.containerMountPath | /var/lib/edgedelta | Container mount path. Must match the pipeline’s persisting_cursor_settings.path. |
See Troubleshooting Persisting Cursor for configuration details.
Docker Container Properties
| Variable | Default | Description |
|---|---|---|
dockerContainerProps.hostPath | /var/lib/docker/containers | Path to Docker container logs on the host node. Used for agent self-discovery. |
eBPF Tracer
| Variable | Default | Description |
|---|---|---|
tracerProps.enabled | true | Enable eBPF-based telemetry sources (Kubernetes Trace, Service Map). Requires podSecurity.privileged=true. |
tracerProps.port | 9595 | Tracer port. |
Disabling eBPF sources can substantially reduce agent resource consumption. See Reducing Agent Resource Consumption.
Volume Mounts
Variable: volumeProps
Mount custom volumes into agent containers.
Example:
volumeProps:
volumeMounts:
- mountPath: /var/lib/kubelet
name: varlibkubelet
readOnly: true
volumes:
- hostPath:
path: /var/lib/kubelet
type: ""
name: varlibkubelet
Target Allocator (Prometheus / OTEL)
Deploys the OpenTelemetry Target Allocator so Prometheus or kube-prom-stack can scrape Edge Delta agent metrics.
| Variable | Default | Description |
|---|---|---|
targetAllocator.enabled | false | Deploy the target allocator. |
targetAllocator.replicas | 1 | Replica count. |
targetAllocator.port | 8080 | Target allocator port. |
targetAllocator.configuration.* | (see chart) | Embedded OTEL configuration (scrape configs, filter strategy). |
targetAllocator.image.name | target-allocator | Image name. |
targetAllocator.image.tag | v0.1.1 | Image tag. |
targetAllocator.resources.limits.cpu | 1000m | CPU limit. |
targetAllocator.resources.limits.memory | 1Gi | Memory limit. |
targetAllocator.resources.requests.cpu | 200m | CPU request. |
targetAllocator.resources.requests.memory | 256Mi | Memory request. |
targetAllocator.tolerations | {} | Node tolerations. |
targetAllocator.nodeSelector | {} | Node selector. |
targetAllocator.priorityClassName | "" | PriorityClass. |
targetAllocator.topologySpreadConstraints | [] | Topology spread constraints. |
Example:
helm upgrade edgedelta edgedelta/edgedelta -i \
--set secretApiKey.value=<pipeline-id> \
--set targetAllocator.enabled=true \
--set targetAllocator.replicas=2 \
-n edgedelta --create-namespace
Coordinator Connection
| Variable | Default | Description |
|---|---|---|
coordinatorProps.enabled | true | Connect processor agents to a coordinator pipeline. |
coordinatorProps.endpoint | "" | Coordinator endpoint. Empty = auto-discover. |
Miscellaneous
| Variable | Default | Description |
|---|---|---|
forceReinstallApplications.enabled | true | Run a pre-upgrade Job that deletes existing processor and compactor workloads before upgrade. |
serviceMonitor.enabled | false | Create a ServiceMonitor for Prometheus to scrape processor agent metrics. |
HTTP Recorder (Deprecated)
Deprecation Notice: The HTTP Recorder is deprecated. Use HTTP/S Source or other source integrations instead.
| Variable | Default | Description |
|---|---|---|
httpRecorderProps.enabled | false | Enable the HTTP Recorder sidecar. |
httpRecorderProps.image.name | httprecorder | Image name. |
httpRecorderProps.image.tag | latest | Image tag. |
httpRecorderProps.image.pullPolicy | IfNotPresent | Pull policy. |
httpRecorderProps.port | 8080 | Listening port. |
Values NOT in this chart
The following values exist in other charts but are not available in the node agent chart:
persistence.*— see Coordinator Values