Helm values
Thresholds are evaluated by the broker, so a change takes effect on the next
findings poll without a controller restart.
Environment variables
Rendered by the chart; listed here for operators who run the binaries another way. Controller (kguardian-controller DaemonSet)
When
compute.enabled is false the chart renders only COMPUTE_ENABLED=false
and no /sys/fs/cgroup mount.
Broker (kguardian-broker Deployment) — rendered regardless of
compute.enabled, so a cluster that turns the feature off still prunes what
it collected. Two windows are fixed and run whatever retentionDays is: a
container’s live row goes 10 minutes after its node last reported it (in
batches of AUDIT_VERDICTS_RETENTION_BATCH_SIZE rows, so a backlog of dead
containers is worked off across a pass rather than one batch per pass), and a
node’s row goes about an hour after the node last reported at all (the pass
runs every 600 s), so a node that left the cluster drops out of
GET /compute/nodes about an hour after its last report.
Pod annotation
Broker endpoints
All read endpoints return JSON and are metered by the broker’s read budget. The twoPOSTs are for the controller. When broker.auth.enabled is set,
the GETs need a token with the read scope and the POSTs need
ingest (see Authentication).
Finding
Findings response
History row
GET /compute/history/{pod_uid} rows carry resolution_secs (60 or 300);
gauges are stored as _avg / _max / _last columns (cpu_usage_millis,
mem_current, mem_working_set, cpu_psi_some10, cpu_psi_full10,
mem_psi_some10, mem_psi_full10), counters (cpu_nr_periods,
cpu_nr_throttled, cpu_throttled_usec, mem_events_high,
mem_events_max, mem_oom_kill, mem_refault, mem_pgmajfault,
runq_count) are sums over the row’s interval, and runq_hist is the
24-bucket log2 latency histogram (bucket b is [2^b, 2^(b+1)) µs; bucket
23 is overflow and is never reported as a finite maximum).