Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
68 commits
Select commit Hold shift + click to select a range
e8cb2a4
feat: mTLS for Splunk 10 (#1197)
ikheifets-splunk Jun 10, 2025
e15d414
chore(release): 1.13.0-beta.1
srv-rr-github-token Jun 10, 2025
0324bbb
chore(deps): update docker/login-action action to v3.4.0 (#1166)
renovate[bot] Jun 10, 2025
dd39338
fix: python and dependency update (#1200)
ajasnosz Jun 10, 2025
463e4ea
chore(release): 1.13.0-beta.2
srv-rr-github-token Jun 10, 2025
c911e7a
chore: add missing sudo in integration test script (#1207)
omrozowicz-splunk Jun 23, 2025
b9a0294
chore: update microk8s (#1206)
omrozowicz-splunk Jun 24, 2025
c3dd6c3
chore(deps): update dependency urllib3 to v2 [security] (#1205)
renovate[bot] Jun 25, 2025
2559289
feat: add discovery for docker (#1208)
ajasnosz Jun 30, 2025
e1f3ffb
feat: Added deployment for k8s (#1204)
cwadhwani-splunk Jul 8, 2025
cd44b56
fix: replace - with _ for metrics (#1213)
omrozowicz-splunk Jul 9, 2025
582a553
chore(release): 1.13.0-beta.3
srv-rr-github-token Jul 9, 2025
0e1f32f
feat: add partial walk (#1215)
ajasnosz Jul 22, 2025
9219959
chore(release): 1.13.0-beta.4
srv-rr-github-token Jul 22, 2025
e98c98a
test: parallelised integration tests (#1220)
omrozowicz-splunk Jul 28, 2025
80818aa
fix: problem with casting strings of scientific notation (#1219)
omrozowicz-splunk Jul 30, 2025
859c84d
chore(release): 1.13.0-beta.5
srv-rr-github-token Jul 30, 2025
57d44ae
fix: add ipv6 flag for worker poller (#1218)
ajasnosz Jul 31, 2025
41f237c
chore(release): 1.13.0-beta.6
srv-rr-github-token Jul 31, 2025
be59765
chore(deps): update dependency mkdocs-material to v9.6.16 (#1211)
renovate[bot] Aug 1, 2025
0600650
feat: Feat/autodiscovery application code (#1217)
cwadhwani-splunk Aug 4, 2025
7b18a91
chore: fix license accept issue in integration tests (#1227)
omrozowicz-splunk Aug 11, 2025
48641c8
feat: added configurable parameter for SNMP request's retry and timeo…
cwadhwani-splunk Aug 13, 2025
a98987c
fix: logging (#1223)
omrozowicz-splunk Aug 13, 2025
0da4200
chore(release): 1.13.0-beta.7
srv-rr-github-token Aug 13, 2025
fcf8805
fix: update dependencies (#1229)
omrozowicz-splunk Aug 13, 2025
c89dd17
chore(release): 1.13.0-beta.8
srv-rr-github-token Aug 13, 2025
71108d7
docs: Added doc changes for discovery feature (#1228)
cwadhwani-splunk Aug 14, 2025
289d48a
chore: removed expires from the shared_task decorator
cwadhwani-splunk Aug 14, 2025
3dff9cd
fix: traps add engine contextId (#1230)
omrozowicz-splunk Aug 14, 2025
988c65c
chore(release): 1.13.0-beta.9
srv-rr-github-token Aug 14, 2025
a09806a
chore: Added architecture diagram which includes discovery feature (#…
cwadhwani-splunk Aug 18, 2025
d816124
Merge branch 'develop' of https://github.com/splunk/splunk-connect-fo…
cwadhwani-splunk Aug 18, 2025
f14f658
Merge branch 'feat/autodiscovery' of https://github.com/splunk/splunk…
cwadhwani-splunk Aug 18, 2025
6ca6a0d
chore: executed pre-commit command to fix black related fix
cwadhwani-splunk Aug 19, 2025
c7a574d
chore: fixed issues raised by hook id mypy
cwadhwani-splunk Aug 19, 2025
e979ef7
chore: updated poetry lock file
cwadhwani-splunk Aug 19, 2025
6d6daff
chore: added build-base to install pandas and numpy
cwadhwani-splunk Aug 20, 2025
a81e9a2
Feat/autodiscovery with csv package (#1236)
cwadhwani-splunk Aug 21, 2025
1d89e80
chore: black related fix
cwadhwani-splunk Aug 22, 2025
866286b
feat: added dashboards for tracking discovery tasks (#1237)
cwadhwani-splunk Aug 25, 2025
c5e93de
chore: trigger tests [run-int-tests]
cwadhwani-splunk Aug 25, 2025
cde346d
feat: Adding support of python v3.13 and migrating from pysnmplib to …
gmaiyani-crest Oct 24, 2025
4f14498
refactor: remove redundant env vars (LOGNAME, LNAME, USERNAME) [run-i…
gmaiyani-crest Oct 27, 2025
eaaa62e
chore: update the pysnmp to v7.1.8 and refactor the code [run-int-tests]
gmaiyani-crest Oct 28, 2025
e8a4488
chore: implemented multi_bulk_walk_cmd to improve performance
gmaiyani-crest Nov 6, 2025
693f241
chore: take the develop pull
gmaiyani-crest Nov 6, 2025
58cd1a0
chore: removed active check feature from auto discovery
cwadhwani-splunk Nov 10, 2025
dcd181c
test: added test cases for multi_bulk_walk_cmd and refactor the code …
gmaiyani-crest Nov 10, 2025
9ed0b70
chore: updated the documentation accordingly
cwadhwani-splunk Nov 11, 2025
84a3868
Merge branch 'develop' of github.com:splunk/splunk-connect-for-snmp i…
cwadhwani-splunk Nov 11, 2025
7d820ef
chore: update the loading mibs logic
gmaiyani-crest Nov 17, 2025
c3af8d1
chore: updated hash in poetry.lock file
cwadhwani-splunk Nov 19, 2025
c4c9990
chore: Running make render[run-int-tests]
cwadhwani-splunk Nov 27, 2025
69794f0
chore: updating poetry lock [run-int-tests]
cwadhwani-splunk Nov 27, 2025
50d5134
feat: migrate auto-discovery
gmaiyani-crest Nov 27, 2025
7efd39f
chore: refactoring the discovery manager
cwadhwani-splunk Nov 27, 2025
2a8ca52
chore: updating integeration tests docker env[run-int-tests]
cwadhwani-splunk Nov 28, 2025
ac0bd92
refactor: move shared fields and validators into BaseRecord
gmaiyani-crest Nov 28, 2025
b850351
chore: updating integeration tests docker env[run-int-tests]
cwadhwani-splunk Nov 28, 2025
55f5c5c
chore: update the naming convention
gmaiyani-crest Nov 28, 2025
d248798
merge: merged branch 'feat/migrate-pysnmplib-to-lextudio-pysnmp-v7.1.…
gmaiyani-crest Nov 28, 2025
0a38147
merge: pull of branch 'feat/autodiscovery' of github.com:splunk/splun…
gmaiyani-crest Nov 28, 2025
90c256c
merge: merged branch 'feat/autodiscovery' of github.com:splunk/splunk…
gmaiyani-crest Dec 2, 2025
bfab98b
chore: migrate auto-discovery feature to make compatible with lextuio…
gmaiyani-crest Dec 2, 2025
d719fa7
merge: pull latest changes from the develop branch
gmaiyani-crest Dec 2, 2025
e4afa46
feat: adding support of python v3.13 and migrating from pysnmplib to …
gmaiyani-crest Dec 2, 2025
df2b67f
chore: update the fields sequence [run-int-tests]
gmaiyani-crest Dec 2, 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
6 changes: 3 additions & 3 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 @@ -197,7 +197,7 @@ jobs:
- 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 Down
2 changes: 1 addition & 1 deletion .github/workflows/ci-ui-tests.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,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
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
- Implemented automatic data migration from Bitnami deployments (PVC reuse)
- Enabled AOF persistence by default for data durability
- add CounterBasedGauge64 and ZeroBasedCounter64 as metrics types
- add SNMP-enabled device discovery feature

### Fixes
- fix problem with service rendering when `traps.service.usemetallb` is set to false
Expand Down
3 changes: 2 additions & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
FROM python:3.10-alpine AS base
FROM python:3.13-alpine AS base

ENV PYTHONFAULTHANDLER=1 \
PYTHONHASHSEED=random \
PYTHONUNBUFFERED=1
RUN apk add -U git sqlite-dev
RUN pip install --upgrade setuptools pip
RUN apk add --no-cache nmap
RUN mkdir /app
WORKDIR /app

Expand Down
4 changes: 2 additions & 2 deletions charts/splunk-connect-for-snmp/Chart.lock
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,5 @@ dependencies:
- name: mibserver
repository: https://pysnmp.github.io/mibs/charts/
version: 1.15.25
digest: sha256:747fcedec83bf0d80600166a021b35436d8d2ea877b60e9a43044ed2140cf1c5
generated: "2025-10-13T12:15:04.255986+02:00"
digest: sha256:204f5bac63adfed27167a2d1f76682400e98ff9dd39bb319357633de25f91525
generated: "2025-11-06T09:07:30.615857862Z"
3 changes: 2 additions & 1 deletion charts/splunk-connect-for-snmp/templates/NOTES.txt
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
Default walk no longer calls full oid tree, instead it is collecting only 'SNMPv2-MIB'.
If you want to call full oid for the devices, you have to set enableFullWalk flag to true.
If you want to call full oid for the devices, you have to set enableFullWalk flag to true.
If the discovery feature is enabled, the time required may increase depending on the number of devices in the specified subnet.
11 changes: 11 additions & 0 deletions charts/splunk-connect-for-snmp/templates/_helpers.tpl
Original file line number Diff line number Diff line change
Expand Up @@ -96,6 +96,17 @@ Whether enable polling
{{- end -}}
{{- end }}

{{/*
Whether enable discovery
*/}}
{{- define "splunk-connect-for-snmp.discovery.enable" -}}
{{- if .Values.discovery.enabled }}
{{- printf "true" }}
{{- else }}
{{- printf "false" }}
{{- end -}}
{{- end }}

{{- /*
Generate Redis environment variables for application pods
*/ -}}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
apiVersion: v1
kind: ConfigMap
metadata:
name: {{ include "splunk-connect-for-snmp.name" . }}-discovery-config
data:
discovery-config.yaml: |
{{- if .Values.discovery }}
{{ .Values.discovery | toYaml | indent 4 }}
{{- end }}
50 changes: 50 additions & 0 deletions charts/splunk-connect-for-snmp/templates/discovery/_helpers.tpl
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
{{/*
Expand the name of the chart.
*/}}
{{- define "splunk-connect-for-snmp.discovery.name" -}}
{{- default (printf "%s-%s" .Chart.Name "discovery") .Values.discovery.nameOverride | trunc 63 | trimSuffix "-" }}
{{- end }}

{{/*
Create a default fully qualified app name.
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
If release name contains chart name it will be used as a full name.
*/}}
{{- define "splunk-connect-for-snmp.discovery.fullname" -}}
{{- if .Values.discovery.fullnameOverride }}
{{- .Values.discovery.fullnameOverride | trunc 63 | trimSuffix "-" }}
{{- else }}
{{- $name := default (printf "%s-%s" .Chart.Name "discovery") .Values.discovery.nameOverride }}
{{- if contains $name .Release.Name }}
{{- .Release.Name | trunc 63 | trimSuffix "-" }}
{{- else }}
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }}
{{- end }}
{{- end }}
{{- end }}

{{/*
Not using it anywhere
*/}}
{{/*
Create chart name and version as used by the chart label.
*/}}
{{- define "splunk-connect-for-snmp.discovery.chart" -}}
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }}
{{- end }}

{{/*
Selector labels
*/}}
{{- define "splunk-connect-for-snmp.discovery.selectorLabels" -}}
app.kubernetes.io/name: {{ include "splunk-connect-for-snmp.discovery.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
{{- end }}

{{/*
Common labels
*/}}
{{- define "splunk-connect-for-snmp.discovery.labels" -}}
{{ include "splunk-connect-for-snmp.discovery.selectorLabels" . }}
{{ include "splunk-connect-for-snmp.labels" . }}
{{- end }}
78 changes: 78 additions & 0 deletions charts/splunk-connect-for-snmp/templates/discovery/job.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
{{- if eq (include "splunk-connect-for-snmp.discovery.enable" .) "true" }}
apiVersion: batch/v1
kind: Job
metadata:
name: {{ include "splunk-connect-for-snmp.discovery.fullname" . }}
labels:
{{- include "splunk-connect-for-snmp.discovery.labels" . | nindent 4 }}
spec:
ttlSecondsAfterFinished: 300
template:
metadata:
# {{- with .Values.inventory.podAnnotations }}
# annotations:
# {{- toYaml . | nindent 8 }}
# {{- end }}

labels:
{{- include "splunk-connect-for-snmp.discovery.selectorLabels" . | nindent 8 }}
spec:
{{- with .Values.imagePullSecrets }}
imagePullSecrets:
{{- toYaml . | nindent 8 }}
{{- end }}
containers:
- name: {{ .Chart.Name }}-discovery
image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}"
imagePullPolicy: {{ .Values.image.pullPolicy }}
args:
["discovery"]
env:
{{- if .Values.redis.auth.enabled }}
- name: REDIS_PASSWORD
valueFrom:
secretKeyRef:
{{- if .Values.redis.auth.existingSecret }}
name: {{ .Values.redis.auth.existingSecret }}
key: {{ .Values.redis.auth.existingSecretPasswordKey | default "password" }}
{{- else }}
name: {{ .Release.Name }}-redis-secret
key: password
{{- end }}
{{- end }}
- name: REDIS_HOST
value: {{ .Release.Name }}-redis
- name: REDIS_PORT
value: "6379"
- name: REDIS_DB
value: "1"
- name: CELERY_DB
value: "0"
- name: DISCOVERY_CONFIG_PATH
value: /app/discovery/discovery-config.yaml
- name: LOG_LEVEL
value: {{ .Values.discovery.logLevel | default "INFO" }}
- name: CHAIN_OF_TASKS_EXPIRY_TIME
value: {{ .Values.scheduler.tasksExpiryTime | quote }}
- name: CELERY_TASK_TIMEOUT
value: {{ .Values.worker.taskTimeout | quote}}
volumeMounts:
- name: discovery-config
mountPath: "/app/discovery"
readOnly: true
- name: tmp
mountPath: "/tmp/"
readOnly: false

volumes:
# # You set volumes at the Pod level, then mount them into containers inside that Pod
- name: discovery-config
configMap:
name: {{ include "splunk-connect-for-snmp.name" . }}-discovery-config
items:
- key: "discovery-config.yaml"
path: "discovery-config.yaml"
- name: tmp
emptyDir: {}
restartPolicy: OnFailure
{{- end -}}
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,8 @@ spec:
"celery", "beat",
]
env:
- name: USER
value: {{ .Values.deploymentUser | default "sc4snmp" | quote }}
- name: CONFIG_PATH
value: /app/config/config.yaml
{{- include "splunk-connect-for-snmp.redis-env" . | nindent 12 }}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,8 @@ spec:
imagePullPolicy: {{ .Values.sim.pullPolicy | default "IfNotPresent" }}
args: ["--config=/config/otel-collector-config.yaml"]
env:
- name: USER
value: {{ .Values.deploymentUser | default "sc4snmp" | quote }}
{{- include "splunk-connect-for-snmp.redis-env" . | nindent 12 }}
- name: signalfxToken
valueFrom:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,5 +27,9 @@ 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 @@ -46,6 +46,8 @@ spec:
"trap"
]
env:
- name: USER
value: {{ .Values.deploymentUser | default "sc4snmp" | quote }}
- name: CONFIG_PATH
value: /app/config/config.yaml
- name: MONGO_URI
Expand Down
18 changes: 18 additions & 0 deletions charts/splunk-connect-for-snmp/templates/worker/_helpers.tpl
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,10 @@ app.kubernetes.io/name: {{ include "splunk-connect-for-snmp.worker.name" . }}-fl
app.kubernetes.io/instance: {{ .Release.Name }}
{{- end }}

{{- define "splunk-connect-for-snmp.worker.discovery.selectorLabels" -}}
app.kubernetes.io/name: {{ include "splunk-connect-for-snmp.worker.name" . }}-discovery
app.kubernetes.io/instance: {{ .Release.Name }}
{{- end }}

{{/*
Common labels
Expand Down Expand Up @@ -88,6 +92,11 @@ Common labels
{{ include "splunk-connect-for-snmp.labels" . }}
{{- end }}

{{- define "splunk-connect-for-snmp.worker.discovery.labels" -}}
{{ include "splunk-connect-for-snmp.worker.discovery.selectorLabels" . }}
{{ include "splunk-connect-for-snmp.labels" . }}
{{- end }}

{{- define "environmental-variables" -}}
- name: CONFIG_PATH
value: /app/config/config.yaml
Expand Down Expand Up @@ -118,6 +127,8 @@ Common labels
value: {{ .Values.worker.disableMongoDebugLogging | quote }}
- name: UDP_CONNECTION_TIMEOUT
value: {{ .Values.worker.udpConnectionTimeout | default "3" | quote }}
- name: UDP_CONNECTION_RETRIES
value: {{ .Values.worker.udpConnectionRetries | default "5" | quote }}
- name: MAX_OID_TO_PROCESS
value: {{ .Values.poller.maxOidToProcess | default "70" | quote }}
- name: MAX_REPETITIONS
Expand Down Expand Up @@ -210,4 +221,11 @@ Common labels
{{ else }}
value: "false"
{{- end }}
{{- end }}

{{- define "environmental-variables-discovery" -}}
- name: WORKER_CONCURRENCY
value: {{ .Values.worker.discovery.concurrency | default "4" | quote }}
- name: PREFETCH_COUNT
value: {{ .Values.worker.discovery.prefetch | default "30" | quote }}
{{- end }}
Loading
Loading