Documentation menu

Helm Chart Reference

All configurable values for the DataAgent agent Helm chart.

Install or upgrade the chart:

# Install
helm install dataagent oci://ghcr.io/data-agent-co/dataagent-chart \
  --namespace dataagent --create-namespace \
  --set config.authToken=<token> \
  --set config.clusterName=<name> \
  --set imageCredentials.password=<ghcr-pat>

# Upgrade
helm upgrade dataagent oci://ghcr.io/data-agent-co/dataagent-chart \
  --namespace dataagent --reset-then-reuse-values

Top-level

KeyTypeDefaultDescription
namespacestringdataagentKubernetes namespace to deploy into
createNamespaceboolfalseCreate the namespace if it does not exist. Set to false when the namespace is managed externally (ArgoCD, GitOps)
replicaCountint1Number of orchestrator pod replicas. Keep at 1 — the agent is stateful per cluster
nameOverridestringdataagentOverride the resource name prefix
fullnameOverridestring""Override the full resource name

image — Orchestrator image

KeyTypeDefaultDescription
image.repositorystringghcr.io/data-agent-co/dataagent/orchestratorContainer image repository
image.pullPolicystringIfNotPresentImage pull policy
image.tagstring""Image tag. Defaults to the chart’s appVersion when empty

imageCredentials — GHCR authentication

KeyTypeDefaultDescription
imageCredentials.passwordstring""GitHub PAT with read:packages scope. Creates an imagePullSecret automatically

config — Agent configuration

KeyTypeDefaultDescription
config.authTokenstring""Required. JWT auth token from the DataAgent dashboard
config.clusterNamestring""Human-readable cluster name shown in the dashboard
config.agentNamestring""Agent identifier. Defaults to the pod name when empty
config.hubUrlstringtunnel.data-agent.co:443Tunnel Broker endpoint. Do not change unless instructed by support
config.heartbeatIntervalduration30sHow often the agent sends a heartbeat to the Hub
config.reconnectDelayduration5sInitial delay before reconnecting after a dropped connection
config.maxReconnectDelayduration60sMaximum back-off delay between reconnection attempts
config.tlsEnabledbooltrueEnable mTLS for the Hub connection. Must be true in production
config.tlsInsecureboolfalseSkip TLS certificate verification. Never set to true in production
config.tlsCACertstring""PEM-encoded CA certificate for manual override. When set, the chart mounts it at /etc/ssl/dataagent/ca.crt and skips the init container fetch

k8sgpt — K8sGPT sidecar

Runs cluster analysis on a schedule and reports findings to the orchestrator.

KeyTypeDefaultDescription
k8sgpt.enabledbooltrueEnable the K8sGPT sidecar
k8sgpt.image.repositorystringghcr.io/k8sgpt-ai/k8sgptK8sGPT image repository
k8sgpt.image.pullPolicystringIfNotPresentImage pull policy
k8sgpt.image.tagstringv0.3.48K8sGPT version
k8sgpt.config.grpcPortint8080gRPC port the orchestrator connects to (localhost only)
k8sgpt.config.httpPortint8081HTTP port for K8sGPT metrics and health
k8sgpt.config.analyzeIntervalduration5mHow often K8sGPT runs a full cluster analysis pass
k8sgpt.config.apiCachebooltrueServe cluster LISTs from the API server’s watch cache (RAM) instead of consistent etcd reads. Eventually consistent (~1s lag), reduces etcd and API-server load on the cluster. Set to false to force consistent reads
k8sgpt.resources.limits.cpustring2000mCPU limit
k8sgpt.resources.limits.memorystring2GiMemory limit
k8sgpt.resources.requests.cpustring100mCPU request
k8sgpt.resources.requests.memorystring128MiMemory request

metricsCollector — Metrics collector sidecar

Collects pod, node, and workload metrics and streams them to the Hub for use in AI enrichment.

KeyTypeDefaultDescription
metricsCollector.enabledbooltrueEnable the metrics collector sidecar
metricsCollector.config.metricsIntervalduration60sCollection interval. Must be between 10s and 1h
metricsCollector.config.healthPortint8086Health server port
metricsCollector.config.k8sQPSint50Kubernetes API client max requests per second
metricsCollector.config.k8sBurstint100Kubernetes API client burst limit
metricsCollector.resources.limits.cpustring2000mCPU limit
metricsCollector.resources.limits.memorystring2GiMemory limit
metricsCollector.resources.requests.cpustring100mCPU request
metricsCollector.resources.requests.memorystring128MiMemory request

topologyAnalyzer — Topology analyzer sidecar

Builds a resource graph of your cluster and sends it to the Hub for relationship-aware analysis.

KeyTypeDefaultDescription
topologyAnalyzer.enabledbooltrueEnable the topology analyzer sidecar
topologyAnalyzer.config.topoServerPortint8083Port the orchestrator’s topology service listens on (localhost only)
topologyAnalyzer.config.healthPortint8084Health and readiness probe port
topologyAnalyzer.config.resyncPeriodduration30mHow often the informer re-delivers its cached objects to its handlers (a resync, not an API re-list); the watch keeps the cache current between resyncs. Set to 0 to disable periodic resync entirely
topologyAnalyzer.config.snapshotIntervalduration5mHow often to send a full snapshot to the Hub
topologyAnalyzer.config.goMemLimitstring819MiBSoft memory ceiling for the Go runtime (GOMEMLIMIT). Integer plus MiB or GiB only. Keep at ~80% of resources.limits.memory — it must stay below the limit; the chart refuses to render when it isn’t (checked when the limit uses Mi/Gi units). Set "" to unset
topologyAnalyzer.resources.limits.cpustring2000mCPU limit
topologyAnalyzer.resources.limits.memorystring1GiMemory limit. Informer-cache residency scales with total cluster object count — raise together with config.goMemLimit on very large clusters
topologyAnalyzer.resources.requests.cpustring100mCPU request
topologyAnalyzer.resources.requests.memorystring128MiMemory request

Orchestrator resources

KeyTypeDefaultDescription
resources.limits.cpustring2000mCPU limit
resources.limits.memorystring2GiMemory limit
resources.requests.cpustring100mCPU request
resources.requests.memorystring128MiMemory request
healthPortint8087Liveness (/health) and readiness (/ready) probe port

Scheduling

KeyTypeDefaultDescription
nodeSelectorobject{kubernetes.io/arch: amd64}Node selector labels. Pinned to amd64 by default because the agent images are built single-arch (linux/amd64); scheduling onto an arm64/Graviton node would crash-loop. Override (set to null to remove it, or supply your own selector) only once multi-arch images are published.
tolerationslist[]Pod tolerations
affinityobject{}Pod affinity rules
podAnnotationsobject{}Annotations added to the agent pod

Security

All containers run with a hardened security context by default. These values should not be changed.

SettingValue
runAsNonRoottrue
runAsUser1000
fsGroup1000
readOnlyRootFilesystemtrue
allowPrivilegeEscalationfalse
capabilities.dropALL
seccompProfileRuntimeDefault

RBAC

KeyTypeDefaultDescription
rbac.createbooltrueCreate ClusterRole and ClusterRoleBinding giving K8sGPT read access to cluster resources
serviceAccount.createbooltrueCreate a dedicated service account
serviceAccount.namestring""Override the service account name. Defaults to the release name

Essential Cookies keep the site working and cannot be switched off. Everything else is off until you turn it on.