Skip to content

Commit 84a3868

Browse files
Merge branch 'develop' of github.com:splunk/splunk-connect-for-snmp into feat/autodiscovery
2 parents 9ed0b70 + f67038e commit 84a3868

File tree

118 files changed

+3242
-235
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

118 files changed

+3242
-235
lines changed

CHANGELOG.md

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,34 @@
22

33
## Unreleased
44

5+
### Changed
6+
- **Redis Migration**: Replaced Bitnami Redis chart with custom Kubernetes manifests
7+
- Updated to official Redis image version 8.2.2 (addresses security vulnerabilities)
8+
- Added authentication support (password or Kubernetes Secret)
9+
- Implemented automatic data migration from Bitnami deployments (PVC reuse)
10+
- Enabled AOF persistence by default for data durability
11+
- add CounterBasedGauge64 and ZeroBasedCounter64 as metrics types
12+
- add SNMP-enabled device discovery feature
13+
14+
### Fixes
15+
- fix problem with service rendering when `traps.service.usemetallb` is set to false
16+
17+
## [1.14.1]
18+
- update mongodb volumePermission image repository to `bitnamileagcy`
19+
20+
## [1.14.0]
21+
- change bulkWalk `nonRepeater` to 0 and allow user to set `MAX_REPETITIONS` to achieve better polling performance
22+
- update bitnami image repository to `bitnamileagcy`
23+
24+
## [1.13.0]
25+
526
### Changed
627
- implemented mTLS for Splunk 10
728
- update default microk8s to 1.33
829
- introduce `splunkMetricNameHyphenToUnderscore` parameter to make metric names follow Splunk schema
930
- change default walk to get only SNMPv2-MIB
1031
- add `disableMongoDebugLogging` parameter to disable extensive pymnogo logs while `logLevel` is set to `DEBUG`
1132
- add `includeSecurityContextId` parameter to control whether to add the `context_engine_id` field to v3 trap events
12-
- added SNMP-enabled device discovery feature
1333

1434
### Fixed
1535
- fix text SNMP values with numbers and 'E' being interpreted as scientific notation

Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ WORKDIR /app
1111

1212
FROM base AS builder
1313
RUN pip install --upgrade pip ;\
14-
pip install poetry
14+
pip install poetry
1515

1616
COPY poetry.lock pyproject.toml /app/
1717
COPY splunk_connect_for_snmp /app/splunk_connect_for_snmp

charts/splunk-connect-for-snmp/Chart.lock

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,8 @@ dependencies:
22
- name: mongodb
33
repository: https://charts.bitnami.com/bitnami
44
version: 15.6.26
5-
- name: redis
6-
repository: https://charts.bitnami.com/bitnami
7-
version: 20.2.2
85
- name: mibserver
96
repository: https://pysnmp.github.io/mibs/charts/
107
version: 1.15.25
11-
digest: sha256:b7c83eee7395cbc67d21833ab21da52d1d43481c798e52d0a9a7f0a7c3fe05b4
12-
generated: "2025-08-13T13:56:57.099109+02:00"
8+
digest: sha256:747fcedec83bf0d80600166a021b35436d8d2ea877b60e9a43044ed2140cf1c5
9+
generated: "2025-10-13T12:15:04.255986+02:00"

charts/splunk-connect-for-snmp/Chart.yaml

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
apiVersion: v2
22
name: splunk-connect-for-snmp
3-
description: A Helm chart for SNMP Connect for SNMP
3+
description: A Helm chart for Splunk Connect for SNMP
44
# A chart can be either an 'application' or a 'library' chart.
55
#
66
# Application charts are a collection of templates that can be packaged into versioned archives
@@ -14,20 +14,17 @@ type: application
1414
# to the chart and its templates, including the app version.
1515
# Versions are expected to follow Semantic Versioning (https://semver.org/)
1616

17-
version: 1.13.0-beta.9
17+
version: 1.14.2-beta.4
1818
# This is the version number of the application being deployed. This version number should be
1919
# incremented each time you make changes to the application. Versions are not expected to
2020
# follow Semantic Versioning. They should reflect the version the application is using.
2121
# It is recommended to use it with quotes.
22-
appVersion: "1.13.0-beta.9"
22+
appVersion: "1.14.2-beta.4"
2323
#
2424
dependencies:
2525
- name: mongodb
2626
version: ~15.6.0
2727
repository: https://charts.bitnami.com/bitnami
28-
- name: redis
29-
version: ~20.2.0
30-
repository: https://charts.bitnami.com/bitnami
3128
- name: mibserver
3229
version: ~1.15
3330
repository: https://pysnmp.github.io/mibs/charts/
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
Default walk no longer calls full oid tree, instead it is collecting only 'SNMPv2-MIB'.
22
If you want to call full oid for the devices, you have to set enableFullWalk flag to true.
3-
If the discovery feature is enabled, the time required may increase depending on the number of devices in the specified subnet.
3+
If the discovery feature is enabled, the time required may increase depending on the number of devices in the specified subnet.

charts/splunk-connect-for-snmp/templates/_helpers.tpl

Lines changed: 1 addition & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -14,22 +14,6 @@
1414
{{- end }}
1515
{{- end }}
1616

17-
{{- define "splunk-connect-for-snmp.celery_url" -}}
18-
{{- if and ( eq .Values.redis.architecture "replication" ) .Values.redis.sentinel.enabled }}
19-
{{- printf "redis://%s-redis:6379/0" .Release.Name }}
20-
{{- else }}
21-
{{- printf "redis://%s-redis-master:6379/0" .Release.Name }}
22-
{{- end }}
23-
{{- end }}
24-
25-
{{- define "splunk-connect-for-snmp.redis_url" -}}
26-
{{- if and ( eq .Values.redis.architecture "replication" ) .Values.redis.sentinel.enabled }}
27-
{{- printf "redis://%s-redis:6379/1" .Release.Name }}
28-
{{- else }}
29-
{{- printf "redis://%s-redis-master:6379/1" .Release.Name }}
30-
{{- end }}
31-
{{- end }}
32-
3317
{{/*
3418
Create a default fully qualified app name.
3519
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
@@ -94,7 +78,7 @@ Create the name of the service account to use
9478
Whether enable traps
9579
*/}}
9680
{{- define "splunk-connect-for-snmp.traps.enable" -}}
97-
{{- if or (and (eq .Values.traps.service.type "LoadBalancer") .Values.traps.loadBalancerIP ) (and (eq .Values.traps.service.type "NodePort") .Values.traps.service.nodePort) }}
81+
{{- if or (and (eq .Values.traps.service.type "LoadBalancer") .Values.traps.loadBalancerIP ) (and (eq .Values.traps.service.type "NodePort") .Values.traps.service.nodePort ) ( not .Values.traps.service.usemetallb) }}
9882
{{- printf "true" }}
9983
{{- else }}
10084
{{- printf "false" }}

charts/splunk-connect-for-snmp/templates/inventory/job.yaml

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,12 +30,28 @@ spec:
3030
env:
3131
- name: CONFIG_PATH
3232
value: /app/config/config.yaml
33-
- name: REDIS_URL
34-
value: {{ include "splunk-connect-for-snmp.redis_url" . }}
33+
{{- if .Values.redis.auth.enabled }}
34+
- name: REDIS_PASSWORD
35+
valueFrom:
36+
secretKeyRef:
37+
{{- if .Values.redis.auth.existingSecret }}
38+
name: {{ .Values.redis.auth.existingSecret }}
39+
key: {{ .Values.redis.auth.existingSecretPasswordKey | default "password" }}
40+
{{- else }}
41+
name: {{ .Release.Name }}-redis-secret
42+
key: password
43+
{{- end }}
44+
{{- end }}
45+
- name: REDIS_HOST
46+
value: {{ .Release.Name }}-redis
47+
- name: REDIS_PORT
48+
value: "6379"
49+
- name: REDIS_DB
50+
value: "1"
51+
- name: CELERY_DB
52+
value: "0"
3553
- name: INVENTORY_PATH
3654
value: /app/inventory/inventory.csv
37-
- name: CELERY_BROKER_URL
38-
value: {{ include "splunk-connect-for-snmp.celery_url" . }}
3955
- name: MONGO_URI
4056
value: {{ include "splunk-connect-for-snmp.mongo_uri" . }}
4157
- name: MIB_SOURCES

charts/splunk-connect-for-snmp/templates/mongodb-6.0-upgrade-job.yaml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,11 @@ spec:
1515
spec:
1616
containers:
1717
- name: mongo-fcv-check
18-
image: {{ .Values.mongodb.image.repository }}:{{ .Values.mongodb.image.tag }}
18+
image: {{- if .Values.mongodb.image.registry }}
19+
{{ .Values.mongodb.image.registry }}/{{ .Values.mongodb.image.repository }}:{{ .Values.mongodb.image.tag }}
20+
{{- else }}
21+
{{ .Values.mongodb.image.repository }}:{{ .Values.mongodb.image.tag }}
22+
{{- end }}
1923
command:
2024
- /bin/bash
2125
- -c
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
{{- if eq .Values.redis.architecture "standalone" }}
2+
apiVersion: v1
3+
kind: ConfigMap
4+
metadata:
5+
name: {{ .Release.Name }}-redis-config
6+
namespace: {{ .Release.Namespace }}
7+
labels:
8+
app: {{ .Release.Name }}-redis
9+
data:
10+
redis.conf: |
11+
# Data directory
12+
dir /data
13+
14+
# Persistence - RDB
15+
save 900 1
16+
save 300 10
17+
save 60 10000
18+
19+
# Persistence - AOF
20+
{{- if .Values.redis.persistence.aof.enabled }}
21+
appendonly yes
22+
appendfsync {{ .Values.redis.persistence.aof.fsync }}
23+
{{- else }}
24+
appendonly no
25+
{{- end }}
26+
27+
# Logging
28+
loglevel notice
29+
30+
# Memory
31+
maxmemory-policy noeviction
32+
33+
# Network
34+
bind 0.0.0.0
35+
protected-mode no
36+
port 6379
37+
{{- end }}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
{{- if and .Values.redis.auth.enabled (not .Values.redis.auth.existingSecret) }}
2+
apiVersion: v1
3+
kind: Secret
4+
metadata:
5+
name: {{ .Release.Name }}-redis-secret
6+
namespace: {{ .Release.Namespace }}
7+
type: Opaque
8+
data:
9+
password: {{ .Values.redis.auth.password | b64enc }}
10+
{{- end }}

0 commit comments

Comments
 (0)