Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
43 commits
Select commit Hold shift + click to select a range
6f6b4d0
feat: merged the improved polling changes to main build (#1239)
cwadhwani-splunk Sep 17, 2025
176adb7
chore(release): 1.14.0-beta.1
srv-rr-github-token Sep 17, 2025
0de679b
fix: migrating bitnami to bitnamilegacy for redis and mongodb (#1245)
cwadhwani-splunk Sep 23, 2025
df18dfe
chore: update CHANGELOG (#1246)
omrozowicz-splunk Sep 24, 2025
ebba2d2
chore(release): 1.14.0-beta.2
srv-rr-github-token Sep 24, 2025
ee52aef
chore: update develop (#1251)
omrozowicz-splunk Sep 25, 2025
74f1016
feat: replace the pysnmplib with lextudio's pysmp
gmaiyani-crest Sep 25, 2025
354c35c
Merge branch 'develop' of github.com:splunk/splunk-connect-for-snmp i…
Sep 25, 2025
ef70416
Merge branch 'develop' of github.com:splunk/splunk-connect-for-snmp i…
gmaiyani-crest Sep 25, 2025
9a09c09
chore: refactor & udpated the integration test cases
gmaiyani-crest Sep 26, 2025
f6c2527
chore: empty commit to run integration tests [run-int-tests]
gmaiyani-crest Sep 29, 2025
aa11b9c
chore: fix the documentation about NodePorts and LoadBalancers (#1254)
omrozowicz-splunk Sep 30, 2025
55c5a43
chore: empty commit to run integration tests [run-int-tests]
gmaiyani-crest Sep 29, 2025
17850f1
test: fixed the process_snmp_data test case [run-int-tests]
gmaiyani-crest Oct 1, 2025
f0774ed
fix: update offline docker compose installation (#1257)
omrozowicz-splunk Oct 2, 2025
63d4c13
chore(release): 1.14.1-beta.1
srv-rr-github-token Oct 2, 2025
aeea852
test: fixed the process_snmp_data test case [run-int-tests]
gmaiyani-crest Oct 3, 2025
86910ac
test: update poetry deps [run-int-tests]
gmaiyani-crest Oct 3, 2025
c9eb991
chore: added pysnmpcrypto [run-int-tests]
gmaiyani-crest Oct 3, 2025
e7e5588
test: [run-int-tests]
gmaiyani-crest Oct 3, 2025
4eca46f
test: [run-int-tests]
gmaiyani-crest Oct 3, 2025
13ac5e9
fix: fix the authKey and privKey default types for traps [run-int-tests]
gmaiyani-crest Oct 5, 2025
d82ae6c
Merge branch 'main' of github.com:splunk/splunk-connect-for-snmp into…
gmaiyani-crest Oct 5, 2025
f22a107
test: updated the v3 traps test case [run-int-tests]
gmaiyani-crest Oct 6, 2025
e3606d2
test: fixed v3 traps integration test case [run-int-tests]
gmaiyani-crest Oct 6, 2025
b07aaad
test: improve logs visibility [run-int-tests]
gmaiyani-crest Oct 7, 2025
4d71222
test: added debugger at ini smmp data [run-int-tests]
gmaiyani-crest Oct 8, 2025
b1aff79
chore: added environment user into deployment [run-int-tests]
gmaiyani-crest Oct 8, 2025
252492a
chore: update the mib reslove logic [run-int-tests]
gmaiyani-crest Oct 9, 2025
0ba6233
chore: updated the handling of partially resolved mib [run-int-tests]
gmaiyani-crest Oct 9, 2025
53e70ec
fix: resolved InetAddress classes for compatibility with legacy pysnm…
gmaiyani-crest Oct 11, 2025
8abe91f
test: [run-int-tests]
gmaiyani-crest Oct 13, 2025
6ffd9a2
chore: update the ci to store the artifacts
gmaiyani-crest Oct 13, 2025
765e42a
chore: update the ci to store the artifacts [run-int-tests]
gmaiyani-crest Oct 13, 2025
1d983d2
test:[run-int-tests]
gmaiyani-crest Oct 13, 2025
3ca3866
test:[run-int-tests]
gmaiyani-crest Oct 13, 2025
0308647
test:[run-int-tests]
gmaiyani-crest Oct 13, 2025
a675b9b
test:[run-int-tests]
gmaiyani-crest Oct 13, 2025
c766809
test: [run-int-tests]
gmaiyani-crest Oct 14, 2025
c63cb45
feat: replaced the pysnmp to lextudio's pysnmp v7.1.0 [run-int-tests]
gmaiyani-crest Oct 14, 2025
008bdb0
test: run int tests [run-int-tests]
gmaiyani-crest Oct 15, 2025
1a6913e
Merge branch 'develop' of github.com:splunk/splunk-connect-for-snmp i…
gmaiyani-crest Oct 15, 2025
1868e66
fix: fixed failing test cases [run-int-tests]
gmaiyani-crest Oct 16, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/ci-docker-deployment.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ jobs:
strategy:
matrix:
python-version:
- 3.10
- 3.13
steps:
- name: Check out code
uses: actions/checkout@v4
Expand Down
25 changes: 18 additions & 7 deletions .github/workflows/ci-main.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ jobs:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: "3.10"
python-version: "3.13"
- uses: pre-commit/[email protected]

trivy-scan:
Expand Down Expand Up @@ -102,7 +102,7 @@ jobs:
strategy:
matrix:
python-version:
- "3.10"
- "3.13"
steps:
- uses: actions/checkout@v4
- name: Setup python
Expand Down Expand Up @@ -153,6 +153,7 @@ jobs:
echo "${{ steps.get_commit_message.outputs.commit_message }}"

test-integration-microk8s:
continue-on-error: true
name: Run integration tests in microk8s deployment
needs:
- integration-tests-check
Expand All @@ -161,7 +162,7 @@ jobs:
timeout-minutes: 120
strategy:
matrix:
index: [1, 2, 3, 4, 5, 6]
index: [ 3, 5]
steps:
- name: Checkout Project
uses: actions/checkout@v4
Expand All @@ -177,11 +178,19 @@ jobs:
- name: run automatic_setup_microk8s.sh
run: integration_tests/automatic_setup_microk8s.sh integration
- name: run tests
env:
MATRIX_INDEX: ${{ matrix.index }}
working-directory: integration_tests
run: |
poetry run pytest --splunk_host="localhost" --splunk_password="changeme2" --trap_external_ip="$(hostname -I | cut -d " " -f1)" --sc4snmp_deployment="microk8s" -m part${{ matrix.index }}

- name: Upload integration logs
if: always()
uses: actions/upload-artifact@v4
with:
name: integration-logs-microk8s-part${{ matrix.index }}
path: integration_tests/logs/
test-integration-compose:
continue-on-error: true
name: Run integration tests in docker compose deployment
needs:
- integration-tests-check
Expand All @@ -190,14 +199,14 @@ jobs:
timeout-minutes: 120
strategy:
matrix:
index: [ 1, 2, 3, 4, 5, 6 ]
index: [ 3, 5 ]
steps:
- name: Checkout Project
uses: actions/checkout@v4
- name: Setup python
uses: actions/setup-python@v5
with:
python-version: "3.10"
python-version: "3.13"
- name: Install docker compose
run: |
# Add Docker's official GPG key:
Expand All @@ -218,5 +227,7 @@ jobs:
run: integration_tests/automatic_setup_compose.sh integration
- name: run tests
working-directory: integration_tests
env:
MATRIX_INDEX: ${{ matrix.index }}
run: |
poetry run pytest --splunk_host="localhost" --splunk_password="changeme2" --trap_external_ip="$(hostname -I | cut -d " " -f1)" --sc4snmp_deployment="docker-compose" -m part${{ matrix.index }}
poetry run pytest --splunk_host="localhost" --splunk_password="changeme2" --trap_external_ip="$(hostname -I | cut -d " " -f1)" --sc4snmp_deployment="docker-compose" -m part${{ matrix.index }}
2 changes: 1 addition & 1 deletion .github/workflows/ci-ui-tests.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ jobs:
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.10"
python-version: "3.13"

- name: remove not used docker images
run: |
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/mike.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ jobs:
token: "${{ secrets.PAT_CLATOOL }}"
- uses: actions/setup-python@v5
with:
python-version: "3.10"
python-version: "3.13"
- name: Upload Docs
run: |
sudo apt update
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/offline-installation.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ jobs:
strategy:
matrix:
python-version:
- "3.10"
- "3.13"
steps:
- name: Check out code
uses: actions/checkout@v4
Expand Down
2 changes: 1 addition & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM python:3.10-alpine AS base
FROM python:3.13-alpine AS base

ENV PYTHONFAULTHANDLER=1 \
PYTHONHASHSEED=random \
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,8 @@ spec:
"celery", "beat",
]
env:
- name: USER
value: {{ .Values.deploymentUser | default "sc4snmp" | quote }}
- name: CONFIG_PATH
value: /app/config/config.yaml
- name: REDIS_URL
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,8 @@ spec:
imagePullPolicy: {{ .Values.sim.pullPolicy | default "IfNotPresent" }}
args: ["--config=/config/otel-collector-config.yaml"]
env:
- name: USER
value: {{ .Values.deploymentUser | default "sc4snmp" | quote }}
- name: signalfxToken
valueFrom:
secretKeyRef:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,5 +27,8 @@ spec:
memory: 128Mi
requests:
cpu: 100m
memory: 128Mi
memory: 128Mi
env:
- name: USER
value: {{ .Values.deploymentUser | default "sc4snmp" | quote }}
restartPolicy: Never
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,8 @@ spec:
"trap"
]
env:
- name: USER
value: {{ .Values.deploymentUser | default "sc4snmp" | quote }}
- name: CONFIG_PATH
value: /app/config/config.yaml
- name: CELERY_BROKER_URL
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -125,6 +125,8 @@ Common labels
value: {{ .Values.poller.maxOidToProcess | default "70" | quote }}
- name: MAX_REPETITIONS
value: {{ .Values.poller.maxRepetitions | default "10" | quote }}
- name: MAX_SNMP_BULK_WALK_CONCURRENCY
value: {{ .Values.poller.maxSnmpBulkWalkConcurrency | default "5" | quote }}
- name: PYSNMP_DEBUG
value: {{ .Values.pysnmpDebug | default "" | quote }}
- name: PROFILES_RELOAD_DELAY
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,8 @@ spec:
"celery", "flower",
]
env:
- name: USER
value: {{ .Values.deploymentUser | default "sc4snmp" | quote }}
{{- include "environmental-variables" . | nindent 12 }}
ports:
- containerPort: 5555
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,8 @@ spec:
"celery", "worker-poller",
]
env:
- name: USER
value: {{ .Values.deploymentUser | default "sc4snmp" | quote }}
{{- include "environmental-variables" . | nindent 12 }}
{{- include "environmental-variables-poller" . | nindent 12 }}
{{- if .Values.worker.livenessProbe.enabled }}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,8 @@ spec:
"celery", "worker-sender",
]
env:
- name: USER
value: {{ .Values.deploymentUser | default "sc4snmp" | quote }}
{{- include "environmental-variables" . | nindent 12 }}
{{- include "environmental-variables-sender" . | nindent 12 }}
{{- if .Values.splunk.mtls.enabled }}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,8 @@ spec:
"celery", "worker-trap",
]
env:
- name: USER
value: {{ .Values.deploymentUser | default "sc4snmp" | quote }}
{{- include "environmental-variables" . | nindent 12 }}
{{- include "environmental-variables-trap" . | nindent 12 }}
volumeMounts:
Expand Down
6 changes: 6 additions & 0 deletions charts/splunk-connect-for-snmp/values.schema.json
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,9 @@
}
}
},
"deploymentUser" : {
"type": "string"
},
"imagePullSecrets": {
"type": "array"
},
Expand Down Expand Up @@ -365,6 +368,9 @@
"maxRepetitions": {
"type": "integer"
},
"maxSnmpBulkWalkConcurrency": {
"type": "integer"
},
"usernameSecrets": {
"type": "array"
},
Expand Down
7 changes: 7 additions & 0 deletions charts/splunk-connect-for-snmp/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -252,6 +252,11 @@ poller:
# If this number is too high it can cause issues with SNMP response especially for old SNMP devices.
maxRepetitions: 10

# The maximum number of concurrent SNMP bulk walks (bulk_walk_cmd) that can be executed at the same time.
# Setting this control determines the number of OIDsubtrees are walked in parallel and helps prevent overwhelming the target device or network.
# Default is 5.
maxSnmpBulkWalkConcurrency: 5

# list of kubernetes secrets name that will be used for polling
# https://splunk.github.io/splunk-connect-for-snmp/main/microk8s/configuration/poller-configuration/#define-usernamesecrets
usernameSecrets: []
Expand Down Expand Up @@ -511,6 +516,8 @@ serviceAccount:
# This parameter allows to use SC4SNMP for older version of Kubernetes that doesn't support autoscaling/v2
useDeprecatedAPI: false

# A user name to set in the deployment environment.
deploymentUser: "sc4snmp"
#############################################################################
### Please do not modify below values, unless you know what you're doing! ###
#############################################################################
Expand Down
2 changes: 2 additions & 0 deletions docker_compose/.env
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ TRAPS_CONFIG_FILE_ABSOLUTE_PATH=
INVENTORY_FILE_ABSOLUTE_PATH=
COREFILE_ABS_PATH=
SC4SNMP_VERSION="1.14.2-beta.1"
DEPLOYMENT_USER=

# Network configuration
COREDNS_ADDRESS=172.28.0.255
Expand Down Expand Up @@ -54,6 +55,7 @@ WORKER_DISABLE_MONGO_DEBUG_LOGGING=true
UDP_CONNECTION_TIMEOUT=3
MAX_OID_TO_PROCESS=70
MAX_REPETITIONS=10
MAX_SNMP_BULK_WALK_CONCURRENCY=5

# Worker Poller
WORKER_POLLER_CONCURRENCY=4
Expand Down
2 changes: 2 additions & 0 deletions docker_compose/docker-compose.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ x-general_sc4snmp_data: &general_sc4snmp_data
MIB_SOURCES: http://snmp-mibserver:8000/asn1/@mib@
MIB_INDEX: http://snmp-mibserver:8000/index.csv
MIB_STANDARD: http://snmp-mibserver:8000/standard.txt
USER: ${DEPLOYMENT_USER:-sc4snmp}

x-splunk_general_setup: &splunk_general_setup
SPLUNK_HEC_HOST: ${SPLUNK_HEC_HOST}
Expand Down Expand Up @@ -37,6 +38,7 @@ x-workers_general_setup: &workers_general_setup
UDP_CONNECTION_TIMEOUT: ${UDP_CONNECTION_TIMEOUT:-3}
MAX_OID_TO_PROCESS: ${MAX_OID_TO_PROCESS:-70}
MAX_REPETITIONS: ${MAX_REPETITIONS:-10}
MAX_SNMP_BULK_WALK_CONCURRENCY: ${MAX_SNMP_BULK_WALK_CONCURRENCY:-5}
PROFILES_RELOAD_DELAY: ${PROFILES_RELOAD_DELAY:-60}

x-ipv6: &ipv6
Expand Down
6 changes: 5 additions & 1 deletion docs/dockercompose/6-env-file-configuration.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ Inside the directory with the docker compose files, there is a `.env`. Variables
| `INVENTORY_FILE_ABSOLUTE_PATH` | Absolute path to [inventory.csv](./3-inventory-configuration.md) file |
| `COREFILE_ABS_PATH` | Absolute path to Corefile used by coreDNS. Default Corefile can be found inside the `docker_compose` |
| `SC4SNMP_VERSION` | Version of SC4SNMP |
| `DEPLOYMENT_USER` | A user name to set in the deployment environment. The default value is sc4snmp. |


## Network configuration
Expand Down Expand Up @@ -67,7 +68,7 @@ Inside the directory with the docker compose files, there is a `.env`. Variables

### General
| Variable | Description |
|------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------|
|------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------|
| `WALK_RETRY_MAX_INTERVAL` | Maximum time interval between walk attempts |
| `WALK_MAX_RETRIES` | Maximum number of walk retries |
| `METRICS_INDEXING_ENABLED` | Details can be found in [append oid index part to the metrics](../microk8s/configuration/poller-configuration.md#append-oid-index-part-to-the-metrics) |
Expand All @@ -76,6 +77,9 @@ Inside the directory with the docker compose files, there is a `.env`. Variables
| `WORKER_LOG_LEVEL` | Logging level of the workers, possible options: DEBUG, INFO, WARNING, ERROR, CRITICAL, or FATAL |
| `UDP_CONNECTION_TIMEOUT` | Timeout in seconds for SNMP operations |
| `MAX_OID_TO_PROCESS` | Sometimes SNMP Agent cannot accept more than X OIDs per once, so if the error "TooBig" is visible in logs, decrease the number of MAX_OID_TO_PROCESS |
| `MAX_REPETITIONS` | The amount of requested next oids in response for each of varbinds in one request sent |
| `MAX_SNMP_BULK_WALK_CONCURRENCY` | The maximum number of concurrent SNMP bulk walks (bulk_walk_cmd) that can be executed at the same time. Default is 5. Setting this control determines the number of OID subtrees are walked in parallel and helps prevent overwhelming the target device or network. |
|
| `MAX_REPETITIONS` | The amount of requested next oids in response for each of varbinds in one request sent |

### Worker Poller
Expand Down
13 changes: 13 additions & 0 deletions docs/microk8s/configuration/deployment-configuration.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,19 @@ microk8s helm3 inspect values splunk-connect-for-snmp/splunk-connect-for-snmp >

The whole file is divided into the following parts:

To configure `deploymentUser`:

- The `deploymentUser` configuration is kept in the `values.yaml` file as a global (top-level) parameter.
- `values.yaml` is used during the installation process for configuring Kubernetes values.

- This parameter defines a user name to set in the deployment environment. The default value is sc4snmp.

See the following deploymentUser example configuration:

```yaml
deploymentUser: "user1"
```

To configure the endpoint for sending SNMP data:

- `splunk` - in case you use Splunk Enterprise/Cloud.
Expand Down
17 changes: 16 additions & 1 deletion docs/microk8s/configuration/poller-configuration.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,20 @@ When IPv6 is enabled and device is dual stack, the hostname resolution will try
The log level for poller can be set by changing the value for the key `logLevel`. The allowed values are: `DEBUG`, `INFO`, `WARNING`, `ERROR`, `CRITICAL` or `FATAL`.
The default value is `INFO`.

### Define maxSnmpBulkWalkConcurrency
The maximum number of concurrent SNMP bulk walks (bulk_walk_cmd) that can be executed at the same time.
Default is 5.

`maxSnmpBulkWalkConcurrency` Setting this control determines the number of OID subtrees are walked in parallel and helps prevent overwhelming the target device or network.

For example:

The configured variables:
```yaml
poller:
maxSnmpBulkWalkConcurrency: 2
```

### Define maxRepetitions
The maxRepetitions is a parameter used in SNMP GetBulk call. It is responsible for controlling the
amount of variables in one request.
Expand All @@ -58,7 +72,8 @@ The configured variables:
poller:
maxRepetitions: 2
```
The requested varbinds in one getBulk call:

The requested varbinds in one get_bulk call:
```
IP-MIB.ipNetToMediaNetAddress
```
Expand Down
4 changes: 3 additions & 1 deletion integration_tests/automatic_setup_compose.sh
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,9 @@ deploy_poetry() {
poetry install
poetry add --group dev splunk-sdk
poetry add --group dev splunklib
poetry add --group dev pysnmplib
poetry add --group dev pysnmp==7.1.0
poetry add --group dev pytest-asyncio
poetry add --group dev pysnmpcrypto==0.0.4
}

wait_for_containers_to_be_up() {
Expand Down
4 changes: 3 additions & 1 deletion integration_tests/automatic_setup_microk8s.sh
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,9 @@ deploy_poetry() {
poetry install
poetry add --group dev splunk-sdk
poetry add --group dev splunklib
poetry add --group dev pysnmplib
poetry add --group dev pysnmp==7.1.0
poetry add --group dev pytest-asyncio
poetry add --group dev pysnmpcrypto==0.0.4
}

wait_for_pod_initialization() {
Expand Down
Loading
Loading