Deploy the Universal Forwarder using Helm
The splunk-universalforwarder Helm chart deploys a lightweight Splunk agent that forwards logs and metrics to a Splunk indexer or deployment server.
A Splunk Universal Forwarder is a lightweight Splunk agent that tails files, listens on network ports, and streams data to a downstream Splunk indexer over TCP port 9997 (the S2S protocol). Running it as a Kubernetes workload lets you centralize log collection without depending on node-level log shipping agents.
This chart:
- Runs as a Deployment collecting logs from workloads or network inputs.
- Manages the admin password, Ansible default.yml, and outputs.conf entirely from Helm values. No manual pod exec is required.
- Defaults to stateless storage (
storage.emptyDir: true). The pod restarts cleanly from scratch with no PVCs required. Setstorage.emptyDir: falseto use PersistentVolumeClaims for durable fishbucket checkpoints when monitoring local files. - Mirrors the security posture of the splunk-operator Standalone CRD: uid 41812, drop all capabilities, no privilege escalation.
- Uses
startupProbe(40x15s = 600s max) to handle slow Ansible init gracefully, keeping liveness and readiness probes responsive once Splunk is up.
Workload mode
The chart deploys a Deployment. One or more replicas can be configured with replicaCount.
Use cases:
- Centralized syslog receiver (with
service.enabled=true). - Forwarding application logs received over a network input.
- General-purpose log forwarding to a downstream indexer.
For example, scale to two replicas:
helm install my-uf ./helm-chart/splunk-universalforwarder \
--set replicaCount=2 \
--set splunkConfig.forwardServer=indexer.example.com:9997 \
--set splunkConfig.password=MySecurePassword1 \
--set splunkConfig.splunkGeneralTerms=<value-from-splunk-general-terms-acceptance-page>