Edge Delta Agent Helm Values

Complete guide to Helm values for configuring Edge Delta on Kubernetes, including usage patterns, configuration options, and reference documentation.

  6 minute read  

Overview

Helm values are variables used in Helm charts that define the settings for Kubernetes resources in the manifest files (like Deployment, Service, ConfigMap, etc.). They are set with a default configuration but you can override them to customize your Edge Delta deployment.

Not to be confused with environment variables:

Helm ValuesEnvironment Variables
DefinitionSettings passed into a Helm chart at install time. They customize the Kubernetes resources Helm generates.Key-value pairs injected inside running containers (e.g., in Pods) to configure app behavior at runtime.
Who consumes it?Helm CLI and the chart’s templates (deployment.yaml, etc.)Your application running inside the container.
When are they used?During templating: at helm install or helm template time.During pod/container runtime: after Kubernetes creates the Pod and starts the app.
Where are they set?Passed to helm install using –set, -f values.yaml, etc.Defined inside Kubernetes Deployment YAMLs (env: block inside containers:).
Example–set replicaCount=3 or –set image.tag=latest (modifies the YAML before it’s applied)ENV_VAR_NAME=value inside the pod spec (app reads it while running).
ScopeAffects Kubernetes manifests (resources created).Affects app logic/behavior inside the container.

Configuration Categories

Configure your Edge Delta deployment using these focused configuration pages:

CategoryDescription
Environment & ConfigurationCore environment variables, pipeline configuration, workflows, and custom tags for controlling agent behavior.
Authentication & SecurityAPI keys, secrets management, TLS configuration, pod security policies, and SELinux settings.
Image & ContainerContainer image configuration, pull policies, and Docker container properties.
Deployment & ScalingDeployment types (DaemonSet/Deployment), autoscaling configuration, replicas, topology spread constraints, and update strategies.
Resource ManagementCPU and memory requests/limits, priority classes, and resource optimization settings.
NetworkingHTTP/HTTPS proxy configuration, network policies, and proxy bypass settings.
Specialized AgentsCompactor and Rollup agent configuration, Target Allocator for Prometheus integration.
Monitoring & DebuggingService Monitor, profiler, Prometheus ports, store port, and eBPF tracer configuration.
HTTP RecorderHTTP Recorder sidecar configuration for log ingestion via HTTP/TCP protocols.
PersistencePersistent cursor configuration for maintaining state across agent restarts.
Advanced ConfigurationAnnotations, node selectors, tolerations, volume mounts, and other advanced Kubernetes settings.

Quick Start Examples

Basic Installation with API Key

helm upgrade edgedelta edgedelta/edgedelta -i --version v1.17.0 \
  --set secretApiKey.value=<your-pipeline-id> \
  -n edgedelta --create-namespace

Installation as Deployment with Autoscaling

helm upgrade edgedelta edgedelta/edgedelta -i --version v1.17.0 \
  --set secretApiKey.value=<your-pipeline-id> \
  --set deployment.kind=Deployment \
  --set deployment.autoscaling.enabled=true \
  --set deployment.autoscaling.minReplicas=1 \
  --set deployment.autoscaling.maxReplicas=5 \
  -n edgedelta --create-namespace

Installation with HTTP Proxy

helm upgrade edgedelta edgedelta/edgedelta -i --version v1.17.0 \
  --set secretApiKey.value=<your-pipeline-id> \
  --set httpProxy="http://proxy.example.com:8080" \
  --set httpsProxy="https://proxy.example.com:8443" \
  -n edgedelta --create-namespace

Viewing Default Helm Values

To view the default Helm values, update the Edge Delta chart then show values:

helm repo update
helm show values edgedelta/edgedelta

Setting and Overriding Values

Helm values can be set and overridden in several ways. The basic Edge Delta installation command looks like this:

helm upgrade edgedelta edgedelta/edgedelta -i --version v0.1.99 --set secretApiKey.value=123456789 -n edgedelta --create-namespace

Using the –set flag

You can set individual values directly on the command line with the --set flag when you install or upgrade a Helm chart. This is useful for quick adjustments without the need for a separate file.

helm upgrade edgedelta edgedelta/edgedelta -i --version v0.1.99 --set serviceMonitor.enabled=true --set secretApiKey.value=123456789 -n edgedelta --create-namespace

Using a variable file with -f or –values

You can create a YAML file with the values you want to set or override and then specify this file using the -f or --values flag during Helm chart installation or upgrade.

# custom-values.yaml
secretApiKey:
  value: <your-pipeline-id>

deployment:
  kind: Deployment
  autoscaling:
    enabled: true
    minReplicas: 2
    maxReplicas: 10
    targetForCPUUtilizationPercentage: 75

resources:
  limits:
    cpu: 1000m
    memory: 2Gi
  requests:
    cpu: 200m
    memory: 512Mi

httpProxy: "http://proxy.example.com:8080"
httpsProxy: "https://proxy.example.com:8443"

Install using the values file:

helm upgrade edgedelta edgedelta/edgedelta -i --version v0.1.99 -f custom-values.yaml --set secretApiKey.value=123456789 -n edgedelta --create-namespace

Alternatively, you can use multiple values files to layer configurations:

helm upgrade edgedelta edgedelta/edgedelta -i --version v0.1.99 --set serviceMonitor.enabled=true --set secretApiKey.value=123456789 -n edgedelta --create-namespace -f base-values.yaml -f override-values.yaml

Using –set-file

If you have a large piece of data that you want to set, such as a configuration file, you can use the –set-file flag. The data from the specified file will be set as a value for the indicated variable.

helm upgrade edgedelta edgedelta/edgedelta -i --version v0.1.99 --set-file configContent=my-config.yaml --set secretApiKey.value=123456789 -n edgedelta --create-namespace

Using –set-string

This works similarly to –set but forces the value to be treated as a string, which is important when dealing with values that the YAML parser might otherwise interpret as a Boolean or a number.

helm upgrade edgedelta edgedelta/edgedelta -i --version v0.1.99 --set-string flagValue="true" --set secretApiKey.value=123456789 -n edgedelta --create-namespace

Using environment variables with the env (or –env) flag

In some scenarios, you might have to use environment variables for sensitive data that you don’t want to pass directly via command line or stored in files. This is not directly supported by Helm but can be worked around with shell commands.

export API_KEY="123456789"
helm upgrade edgedelta edgedelta/edgedelta -i --version v0.1.99 --set secretApiKey.value=$API_KEY -n edgedelta --create-namespace

Manually editing values.yaml

For Helm charts that are stored locally or have been downloaded, you can directly edit the values.yaml file by hand and then install or upgrade the chart. This method isn’t common for packaged Helm charts but can be used during chart development.

Always remember to use sensitive data handling practices when dealing with secrets or sensitive configurations. In production environments, it is best to store such data in secure storage and reference it using Kubernetes secrets.

Precedence

Helm merges the values together using the following order of precedence. It goes from the most specific (direct command line overrides) to the least specific (the defaults in the chart’s values.yaml). If there are conflicting settings, the source with the highest precedence is chosen.

  1. Command Line –set Parameter: Values set with –set on the command line take the highest precedence. If you use multiple –set options, the last one will take precedence. It can be overridden with successive –set commands:
--set key1=value1 --set key2=value2
  1. Command Line –set-file Parameter: This sets a value from a given file and takes precedence after direct –set parameters.

  2. Command Line –set-string Parameter: Just like –set, but treated as a string. The precedence of –set-string parameters relative to –set and –set-file depends on their order on the command line.

  3. Value Files Specified with -f or –values: If values are supplied using -f or –values options, each file specified will overlay on the previous one:

-f myvalues.yaml -f override.yaml

In this example, override.yaml would take precedence over values in myvalues.yaml.

  1. Values File from the Chart References (values.yaml): This is the values.yaml file included with the Helm chart by default. Any values that are not overridden by the above methods will have the defaults from this file.

  2. Chart Dependencies: For Helm charts that include dependencies, the default values from those dependency charts are applied first (lowest priority), before values from the main chart’s values.yaml.

Verification Commands

After installation, verify your configuration:

# Check deployment status
kubectl get pods -n edgedelta

# View Helm values used
helm get values edgedelta -n edgedelta

# Describe a pod to see applied configuration
kubectl describe pod <pod-name> -n edgedelta

# Check autoscaling (if enabled)
kubectl get hpa -n edgedelta

Variables