Node Agent Helm Values

Helm values specific to the edgedelta/edgedelta chart (node agent pipeline).

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

VariableDefaultDescription
deployment.kindDaemonSetDaemonSet deploys one agent per node. Deployment creates a scalable set of agent pods.
deployment.replicas1Pod count when kind=Deployment. Mutually exclusive with autoscaling.

See Installing as a Deployment.

Autoscaling

Requires deployment.kind=Deployment. DaemonSets do not support HPA.

VariableDefaultDescription
deployment.autoscaling.enabledfalseCreate a HorizontalPodAutoscaler for processor agents.
deployment.autoscaling.externalfalsetrue if using an external autoscaler like KEDA.
deployment.autoscaling.minReplicas1Minimum replica count.
deployment.autoscaling.maxReplicas10Maximum replica count.
deployment.autoscaling.targetForCPUUtilizationPercentage85Target average CPU utilization.
deployment.autoscaling.targetForMemoryUtilizationPercentage(empty)Target average memory utilization.
deployment.autoscaling.customMetric{}Custom metrics for HPA targeting.
deployment.autoscaling.behavior.scaleDown.stabilizationWindowSeconds300Delay 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

VariableDefaultDescription
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.

VariableDefaultDescription
compactorProps.enabledtrueEnable the compactor agent.
compactorProps.port9199Listening port.
compactorProps.replicas1Static replica count. Mutually exclusive with autoscaling.
compactorProps.goMemLimit""Go runtime memory limit.
compactorProps.resources.limits.cpu2000mCPU limit.
compactorProps.resources.limits.memory2GiMemory limit.
compactorProps.resources.requests.cpu200mCPU request.
compactorProps.resources.requests.memory300MiMemory request.
compactorProps.tolerations{}Node tolerations.
compactorProps.nodeSelector{}Node selector.
compactorProps.priorityClassName""PriorityClass.
compactorProps.updateStrategy.typeRollingUpdateUpdate strategy.
compactorProps.topologySpreadConstraints[]Topology spread constraints.

The compactor uses the chart’s top-level image settings. There is no compactorProps.image — see Image.

Compactor Autoscaling

VariableDefaultDescription
compactorProps.autoscaling.enabledfalseEnable HPA for compactor agents.
compactorProps.autoscaling.externalfalsetrue if using an external autoscaler.
compactorProps.autoscaling.minReplicas1Minimum replicas.
compactorProps.autoscaling.maxReplicas10Maximum replicas.
compactorProps.autoscaling.targetForCPUUtilizationPercentage85Target CPU.
compactorProps.autoscaling.targetForMemoryUtilizationPercentage(empty)Target memory.
compactorProps.autoscaling.customMetric{}Custom metrics.
compactorProps.autoscaling.behavior.scaleDown.stabilizationWindowSeconds300Scale-down stabilization.

Rollup Agent

The rollup agent handles metric aggregation and rollup.

VariableDefaultDescription
rollUpProps.enabledtrueEnable the rollup agent.
rollUpProps.port9200Listening port.
rollUpProps.replicas2Static replica count. Mutually exclusive with autoscaling.
rollUpProps.goMemLimit""Go runtime memory limit.
rollUpProps.resources.limits.cpu1000mCPU limit.
rollUpProps.resources.limits.memory1GiMemory limit.
rollUpProps.resources.requests.cpu200mCPU request.
rollUpProps.resources.requests.memory256MiMemory request.
rollUpProps.tolerations{}Node tolerations.
rollUpProps.nodeSelector{}Node selector.
rollUpProps.priorityClassName""PriorityClass.
rollUpProps.updateStrategy.typeRollingUpdateUpdate strategy.
rollUpProps.topologySpreadConstraints[]Topology spread constraints.

The rollup uses the chart’s top-level image settings. There is no rollUpProps.image — see Image.

Rollup Autoscaling

VariableDefaultDescription
rollUpProps.autoscaling.enabledfalseEnable HPA for rollup agents.
rollUpProps.autoscaling.externalfalsetrue if using an external autoscaler.
rollUpProps.autoscaling.minReplicas2Minimum replicas.
rollUpProps.autoscaling.maxReplicas10Maximum replicas.
rollUpProps.autoscaling.targetForCPUUtilizationPercentage85Target CPU.
rollUpProps.autoscaling.targetForMemoryUtilizationPercentage(empty)Target memory.
rollUpProps.autoscaling.customMetric{}Custom metrics.
rollUpProps.autoscaling.behavior.scaleDown.stabilizationWindowSeconds300Scale-down stabilization.

Aggregator Agent

Deploys an extra aggregator agent to collect and aggregate metrics from processor agents.

VariableDefaultDescription
aggregatorProps.enabledfalseEnable the aggregator agent.
aggregatorProps.port9191Listening port.
aggregatorProps.serviceDNSSuffixsvc.cluster.localDNS suffix for constructing the aggregator service endpoint.
aggregatorProps.enabledDataTypes.metrictrueAggregate metrics.
aggregatorProps.enabledDataTypes.cluster_pattern_and_samplefalseAggregate cluster patterns and samples.
aggregatorProps.enabledDataTypes.topkfalseAggregate top-K data.
aggregatorProps.usePersistentVolumefalseUse a PVC to persist aggregator state across restarts.
aggregatorProps.storageClassName""Storage class for the PVC.
aggregatorProps.goMemLimit""Go runtime memory limit.
aggregatorProps.resources.limits.cpu2000mCPU limit.
aggregatorProps.resources.limits.memory2048MiMemory limit.
aggregatorProps.resources.requests.cpu200mCPU request.
aggregatorProps.resources.requests.memory256MiMemory 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.

VariableDefaultDescription
pushService.typeClusterIPService 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.sessionAffinityTimeout10800Session 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.

VariableDefaultDescription
ingress.enabledfalseCreate 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.

VariableDefaultDescription
persistingCursorProps.enabledtrueEnable persistent cursor.
persistingCursorProps.hostMountPath/var/lib/edgedeltaHost path for cursor storage.
persistingCursorProps.containerMountPath/var/lib/edgedeltaContainer mount path. Must match the pipeline’s persisting_cursor_settings.path.

See Troubleshooting Persisting Cursor for configuration details.

Docker Container Properties

VariableDefaultDescription
dockerContainerProps.hostPath/var/lib/docker/containersPath to Docker container logs on the host node. Used for agent self-discovery.

eBPF Tracer

VariableDefaultDescription
tracerProps.enabledtrueEnable eBPF-based telemetry sources (Kubernetes Trace, Service Map). Requires podSecurity.privileged=true.
tracerProps.port9595Tracer 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.

VariableDefaultDescription
targetAllocator.enabledfalseDeploy the target allocator.
targetAllocator.replicas1Replica count.
targetAllocator.port8080Target allocator port.
targetAllocator.configuration.*(see chart)Embedded OTEL configuration (scrape configs, filter strategy).
targetAllocator.image.nametarget-allocatorImage name.
targetAllocator.image.tagv0.1.1Image tag.
targetAllocator.resources.limits.cpu1000mCPU limit.
targetAllocator.resources.limits.memory1GiMemory limit.
targetAllocator.resources.requests.cpu200mCPU request.
targetAllocator.resources.requests.memory256MiMemory 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

VariableDefaultDescription
coordinatorProps.enabledtrueConnect processor agents to a coordinator pipeline.
coordinatorProps.endpoint""Coordinator endpoint. Empty = auto-discover.

Miscellaneous

VariableDefaultDescription
forceReinstallApplications.enabledtrueRun a pre-upgrade Job that deletes existing processor and compactor workloads before upgrade.
serviceMonitor.enabledfalseCreate 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.

VariableDefaultDescription
httpRecorderProps.enabledfalseEnable the HTTP Recorder sidecar.
httpRecorderProps.image.namehttprecorderImage name.
httpRecorderProps.image.taglatestImage tag.
httpRecorderProps.image.pullPolicyIfNotPresentPull policy.
httpRecorderProps.port8080Listening port.

Values NOT in this chart

The following values exist in other charts but are not available in the node agent chart: