Clarify config precedence between Helm values and KV #660
Labels
No labels
1week
2weeks
Failed compliance check
IP cameras
NATS
Possible security concern
Review effort 1/5
Review effort 2/5
Review effort 3/5
Review effort 4/5
Review effort 5/5
UI
aardvark
accessibility
amd64
api
arm64
auth
back-end
bgp
blog
bug
build
checkers
ci-cd
cleanup
cnpg
codex
core
dependencies
device-management
documentation
duplicate
dusk
ebpf
enhancement
eta 1d
eta 1hr
eta 3d
eta 3hr
feature
fieldsurvey
github_actions
go
good first issue
help wanted
invalid
javascript
k8s
log-collector
mapper
mtr
needs-triage
netflow
network-sweep
observability
oracle
otel
plug-in
proton
python
question
reddit
redhat
research
rperf
rperf-checker
rust
sdk
security
serviceradar-agent
serviceradar-agent-gateway
serviceradar-web
serviceradar-web-ng
siem
snmp
sysmon
topology
ubiquiti
wasm
wontfix
zen-engine
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
carverauto/serviceradar#660
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Imported from GitHub.
Original GitHub issue: #2030
Original author: @mfreeman451
Original URL: https://github.com/carverauto/serviceradar/issues/2030
Original created: 2025-11-28T05:46:23Z
Problem\nIn k8s we keep a persistent /var/lib/serviceradar/core.json that is seeded once from the Helm ConfigMap. Later Helm updates (or values changes) do not overwrite the file, and CONFIG_SOURCE/kv env vars are empty. KV overlays can exist (via config/core.json in NATS), but it is unclear which source wins. In practice we set promotion/sightings-only in Helm, but core kept running with the old file, which caused identity settings to be wrong. Users also edit config via the UI/KV, so it is easy for Helm and KV to disagree with no visibility.\n\n## Why it matters\nOperators need a predictable source of truth for identity settings (and other config). Today Helm changes can silently be ignored because the persisted file remains, and KV overlays are opaque. This makes it hard to recover from drift (e.g., promotion accidentally on/off) and to reason about inventory counts.\n\n## Proposed work\n- Define and document clear precedence: Helm vs persisted file vs KV/UI (and whether PV persistence should be kept).\n- Expose the active config source and revision in a status endpoint/logs so operators can see what is actually applied.\n- Optional: disable or gate the persistent file seeding, or implement a managed reconciliation so Helm/values changes can overwrite/update the runtime file when intended.\n- Ensure CONFIG_SOURCE and KV settings are set/used consistently in the core deployment and init scripts.\n- Add tests/CI coverage for the precedence rules and a doc page for k8s users explaining how to change config safely.\n\n## Notes\nDiscovered while trying to switch identity to sightings-only/promotion-off: Helm values said off, KV was updated, but core kept the old on-disk config and ran with promotion on. The only reliable fix was hand-editing /var/lib/serviceradar/core.json.
Imported GitHub comment.
Original author: @mfreeman451
Original URL: https://github.com/carverauto/serviceradar/issues/2030#issuecomment-3813980341
Original created: 2026-01-28T21:17:19Z
closing, stale