Edge onboarding: support agents and checkers #632
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#632
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: #1909
Original author: @mfreeman451
Original URL: https://github.com/carverauto/serviceradar/issues/1909
Original created: 2025-10-29T06:00:06Z
Summary
Expand the edge onboarding experience so operators can issue packages for pollers, agents, and checkers from a single flow. The UI must capture the relationships between these components and automatically update KV configuration so Core and the pollers/agents start exchanging work without manual edits.
Problem Statement
Today the edge onboarding service only creates poller installers. Operators who need to onboard an agent or checker must clone the poller package, hand-edit environment files, and manually patch KV entries so pollers know about their downstream agents and checkers. This manual path is error-prone, undocumented, and blocks repeatable onboarding for sites with multiple agents and device checkers.
Goals & Success Criteria
Non-Goals
User Stories
Functional Requirements
UI updates
Component typeselector (Poller, Agent, Checker) in the Edge Onboarding create modal.Agentis selected, surface anAssociated pollerdropdown populated from active pollers and pending poller packages. Require selection before submission.Checkeris selected, surfaceAssociated agentdropdown (active agents + pending agent packages) and aChecker kindselector (SNMP, sysmon-vm, custom, etc.).API and backend
POST /api/admin/edge-packagesto acceptcomponent_type(poller|agent|checker),parent_id(poller id or agent id depending on type), and optionalchecker_kindpluschecker_configJSON blob.edge_onboarding_packagesand audit events.config/pollers/<poller-id>/agents/<agent-id>with metadata required for activation and mark statuspending.config/agents/<agent-id>/checkers/<checker-id>(structure already used manually today) with statuspending.activeand emit audit events.edge-agent.env,edge-checker.env) and any additional metadata (checker credentials, device targets).CLI enhancements
serviceradar-cli edge package createto accept--component-type,--parent-id, and type-specific payload flags.serviceradar-cli edge package listoutput columns for component type and parent linkage.Observability & security
Acceptance Criteria
docs/docs/edge-onboarding.mdand new agent/poller onboarding doc) explains the new options and automation.Open Questions
References
docs/docs/edge-onboarding.mdImported GitHub comment.
Original author: @mfreeman451
Original URL: https://github.com/carverauto/serviceradar/issues/1909#issuecomment-3476840087
Original created: 2025-11-01T20:59:22Z
Checker Configuration Automation - Implemented
Part of the solution for automated checker onboarding has been implemented:
Checker Template Registration System
Problem Solved: Eliminates manual KV configuration for checkers during edge onboarding.
How it Works:
templates/checkers/{kind}.jsonchecker_config_jsonnot provided)agents/{agent_id}/checkers/{kind}.json(only if not exists)Components Deployed
✅ Core Service - Template fetching, substitution, overwrite protection (deployed to k8s demo)
✅ Design Document -
docs/checker-template-registration.md(complete architecture)🔄 Sysmon Checker - Template registration (Rust implementation building)
📋 Go Checkers - sweep, rperf (pending)
What This Means for Edge Onboarding
Before:
Now:
Architecture Details
KV Key Structure:
templates/checkers/sysmon.json- Factory default (auto-registered by checker)agents/{agent-id}/checkers/sysmon.json- Instance config (one-time write)Supported Variables:
{{DOWNSTREAM_SPIFFE_ID}}- Checker's SPIFFE ID{{TRUST_DOMAIN}}- SPIFFE trust domain{{AGENT_ADDRESS}},{{CORE_ADDRESS}},{{KV_ADDRESS}}- Service endpoints{{LOG_LEVEL}},{{AGENT_ID}},{{CHECKER_KIND}}- MetadataRemaining Work
Files:
pkg/core/edge_onboarding.go:1453-1743docs/checker-template-registration.mdcmd/checkers/sysmon/src/template.rsImported GitHub comment.
Original author: @mfreeman451
Original URL: https://github.com/carverauto/serviceradar/issues/1909#issuecomment-3477241255
Original created: 2025-11-02T02:39:43Z
✅ Service Device Registration Implementation Complete
Successfully implemented device registration for pollers, agents, and checkers to ensure they show up in the inventory as distinct devices.
What Was Implemented
1. Service-Aware Device IDs
serviceradar:service_type:service_idserviceradar:poller:poller-idserviceradar:agent:agent-idserviceradar:checker:checker-idpartition:ip2. Self-Registration
3. Parent-Child Relationships
poller_idin metadataagent_idandpoller_idin metadataserviceName@agentID4. Cleanup/Revocation Support
IsAvailable=false)5. High Cardinality Support
Files Modified
Test Coverage
Created comprehensive test suite:
Verification
Deployed to k8s demo cluster and confirmed:
serviceradar:poller:k8s-poller,serviceradar:poller:k8s-demo-datasvcNext Steps
This addresses the device registration and cleanup aspects of #1909. Still needed for full completion:
Closes the device registration portion of #1909.
🤖 Generated with Claude Code
Imported GitHub comment.
Original author: @mfreeman451
Original URL: https://github.com/carverauto/serviceradar/issues/1909#issuecomment-3813913295
Original created: 2026-01-28T21:01:30Z
closing, stale