-
Notifications
You must be signed in to change notification settings - Fork 127
Docs: Heavy Forwarder using Standalone CR - add docs/HeavyForwarder-Standalone.md #1603
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: develop
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR adds comprehensive documentation for deploying a Splunk Heavy Forwarder on Kubernetes using the Splunk Operator's Standalone Custom Resource. The guide demonstrates ConfigMap-based configuration management, operator-managed HEC enablement, and reliable Splunk-to-Splunk forwarding.
Key Changes:
- Added complete heavy forwarder deployment guide covering architecture, configuration, deployment steps, validation procedures, and troubleshooting
- Documented operator-managed HEC token generation and automatic inputs.conf configuration
- Provided detailed testing procedures with expected outputs for each validation step
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
|
|
||
| The ConfigMap contains a `default.yml` file with three main configuration sections: | ||
|
|
||
| ##### 1. outputs.conf - Forwarding Configuration (Lines 9-22) |
Copilot
AI
Oct 22, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The line number reference '(Lines 9-22)' is misleading as it refers to lines in the original YAML file structure, not the documentation itself. Consider removing the line number reference or clarifying what it refers to (e.g., 'Lines 9-22 in the ConfigMap YAML structure shown below').
| ##### 1. outputs.conf - Forwarding Configuration (Lines 9-22) | |
| ##### 1. outputs.conf - Forwarding Configuration (Lines 9-22 in the ConfigMap YAML structure shown below) |
| - `compressed: true` - Reduces network bandwidth | ||
| - `autoLBFrequency: 30` - Distributes load across indexers every 30 seconds | ||
|
|
||
| ##### 2. props.conf - Data Parsing Rules (Lines 23-30) |
Copilot
AI
Oct 22, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Similar to the previous section, the line number reference '(Lines 23-30)' is unclear. These line numbers don't correspond to lines in this document and may confuse readers.
| ##### 2. props.conf - Data Parsing Rules (Lines 23-30) | |
| ##### 2. props.conf - Data Parsing Rules |
| - Can filter out unwanted events | ||
| - Can route to specific indexer groups | ||
|
|
||
| ##### 3. transforms.conf - Data Transformation (Lines 31-42) |
Copilot
AI
Oct 22, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The line number reference '(Lines 31-42)' should be clarified or removed to avoid confusion, as these numbers don't map to the current document structure.
| ##### 3. transforms.conf - Data Transformation (Lines 31-42) | |
| ##### 3. transforms.conf - Data Transformation |
| - `drop_noise` - Filters out DEBUG messages to reduce noise | ||
| - `to_idx_svc` - Routes specific host data to the indexer cluster | ||
|
|
||
| ### Part 2: Standalone Custom Resource (Lines 44-55) |
Copilot
AI
Oct 22, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The line number reference '(Lines 44-55)' should be removed or clarified, as it doesn't correspond to lines in this documentation.
| ### Part 2: Standalone Custom Resource (Lines 44-55) | |
| ### Part 2: Standalone Custom Resource |
Pull Request Test Coverage Report for Build 18706328521Details
💛 - Coveralls |
|
|
||
| 1. **Kubernetes cluster** with kubectl access | ||
| 2. **Splunk Operator** installed and running | ||
| 3. **Two namespaces**: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think it's optional to run these in the following namespaces since we support both single-namespace and multiple-namespace deployments, so it doesn't have to be a part of the prerequisites. Same with the service name.
|
|
||
| **Transforms Explained:** | ||
| - `drop_noise` - Filters out DEBUG messages to reduce noise | ||
| - `to_idx_svc` - Routes specific host data to the indexer cluster |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is it idx_svc as above or to_idx_svc as here?
| ### Official Documentation | ||
| - [Splunk Operator GitHub](https://github.com/splunk/splunk-operator) | ||
| - [Splunk Operator Documentation](https://splunk.github.io/splunk-operator/) | ||
| - [Splunk Heavy Forwarder Documentation](https://docs.splunk.com/Documentation/Forwarder/latest/Forwarder/Aboutforwardingandreceivingdata) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It returns 404
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| - [transforms.conf](https://docs.splunk.com/Documentation/Splunk/latest/Admin/Transformsconf) | ||
|
|
||
| ### Splunk Operator Custom Resources | ||
| - [Standalone CR Specification](https://splunk.github.io/splunk-operator/StandaloneSpec.html) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It returns 404
|
|
||
| ### Splunk Operator Custom Resources | ||
| - [Standalone CR Specification](https://splunk.github.io/splunk-operator/StandaloneSpec.html) | ||
| - [Common Spec Parameters](https://splunk.github.io/splunk-operator/CommonSpec.html) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It returns 404
| kubectl get standalone -n forwarder | ||
|
|
||
| # Optional: Delete PVCs (data will be lost) | ||
| kubectl delete pvc -n forwarder -l app.kubernetes.io/instance=splunk-hf-standalone-standalone |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There are finalizers, so it should happen automatically
| indexAndForward: false # CRITICAL: False = Heavy Forwarder mode | ||
| autoLBFrequency: 30 # Load balance every 30 seconds | ||
| compressed: true # Compress data during transmission | ||
| "tcpout:idx_svc": |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is there a reason that this has double quotes and dcpout on line 117 does not? It looks like they are at the same indentation, so it might make sense to make them consistent.
Description
Add a new guide
docs/HeavyForwarder-Standalone.mdthat walks users through creating a Splunk Heavy Forwarder on Kubernetes using the Splunk Operator Standalone custom resource. The guide covers:defaultsUrloutputs.conf(indexAndForward=false,useACK=true,compressed=true,autoLBFrequency=30)Key Changes
docs/HeavyForwarder-Standalone.mdNo code or charts changed.
Testing and Verification
Rendered the Markdown locally to verify headings, anchors, and code blocks
Ran Markdown linting to check formatting
Dry-ran the provided
kubectlcommands against a test cluster to validate:inputs.confshows HEC enabledoutputs.confshows heavy forwarder settingsNo automated tests are added since this is documentation only.
Related Issues
PR Checklist