Skip to main content

Cluster resources

The DMG Collector is deployed as a single DaemonSet, with one pod per node. The manifest also creates the minimal RBAC resources required for operation. The DaemonSet does not create a Service or Ingress; the agent has no listening ports. The only network path is outbound HTTPS from each pod to DAG_SHIP_URL.

Runtime configuration

The DaemonSet is configured with the following:
  • privileged: true: Required for bpf(2) and perf ring buffer access. Without it the kernel will refuse to load the programs.
  • hostPID: true: Ensures pid fields in events map to real host PIDs rather than container-scoped ones. Without this the dashboard cannot correlate events from the agent with processes your operators actually see with ps, crictl, or kubectl exec.
  • hostNetwork: true: Allows network observation in the host namespace.
  • dnsPolicy: ClusterFirstWithHostNet: Ensures proper DNS resolution (e.g., private Route 53 via VPC).

Host mounts

The collector uses three read-only host mounts. No writable host mounts are used.

Installation

The manifest uses seven placeholders that you substitute at apply time. The Kubernetes manifest is included in each release under k8s/daemonset.yaml.
1

Extract the release tarball

2

Substitute placeholders and apply

3

Verify deployment

Tolerations and node selection

The shipped manifest tolerates the standard CriticalAddonsOnly taint. If your cluster uses dedicated node pools, tainted system pools, or GPU / special-hardware taints, add matching tolerations to the DaemonSet spec before applying. The agent is lightweight enough to run on every node in the cluster, including control-plane nodes and dedicated pools. Leaving a taint un-tolerated creates a visibility gap that the detection pipeline cannot fill. If you want to exclude specific nodes, add a nodeAffinity. Ensure exclusions are documented, as they create explicit blind spots.

Upgrade

Hilt pushes new images as both v1.<new>.<patch> and, in continuous deployments, a moving tag (dev-latest, prod-latest, etc., depending on your channel). Upgrade with immutable tag:
Upgrade with moving tag:
DaemonSet rolling updates replace one pod per node at a time; event stream interruption per node is on the order of 1–2 seconds.

Uninstall

No node reboots are required, and no host artifacts remain.
Last modified on October 8, 2026