Pulse/internal/servicediscovery
rcourtman 23a930e849 fix(discovery): bring hosts into the fingerprint model so they auto-discover (#1479)
Hosts (PVE nodes and host agents) were entirely outside the discovery
fingerprint model. Two consequences, one root:

1. collectFingerprints only covered docker/lxc/vm/k8s, so a host never
   appeared in GetChangedResources and automatic discovery never ran for
   it. Only the per-resource manual trigger worked, which is exactly the
   v6.0.5-rc.3 behaviour reported in #1479.

2. cleanupOrphanedData built its keep-set from the same four types, so
   CleanupOrphanedDiscoveries swept every agent:* discovery as an orphan
   on the next fingerprint cycle (default 5 minutes). Manually discovered
   hosts silently reverted to undiscovered.

Fix: add GenerateHostFingerprint (identity, OS, kernel, arch, tags;
status excluded so online/offline flapping cannot trigger rediscovery),
fingerprint snap.Hosts under the canonical agent:<id>:<id> key, and keep
host/node discovery keys (canonical, hostname-alias, and legacy host:
prefix forms) out of orphan cleanup. Also purge the store's in-memory
cache when an orphaned discovery file is removed, so deletions are not
masked for the cache TTL.
2026-07-07 22:55:04 +01:00
..
availability_suggestion.go fix(discovery): backfill availability suggestions for existing discoveries 2026-06-26 23:56:15 +01:00
availability_suggestion_test.go feat(discovery): suggest availability probes from discovered service types 2026-06-26 17:12:11 +01:00
commands.go Detect nested-container access topology in discovery 2026-06-07 21:39:22 +01:00
commands_test.go Make discovery a fast surface scan, not a deep scan 2026-06-07 20:54:46 +01:00
deep_scanner.go Route hostname lookups through canonical equivalence 2026-04-21 22:47:23 +01:00
deep_scanner_test.go feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
fingerprint.go fix(discovery): bring hosts into the fingerprint model so they auto-discover (#1479) 2026-07-07 22:55:04 +01:00
formatters.go Add discovery freshness to the local/full context formatter 2026-06-09 10:58:38 +01:00
formatters_test.go Add discovery freshness to the local/full context formatter 2026-06-09 10:58:38 +01:00
readiness.go Add discovery readiness to Assistant context 2026-06-04 21:56:36 +01:00
readiness_test.go Add discovery readiness to Assistant context 2026-06-04 21:56:36 +01:00
scenario_corpus_test.go Add Kubernetes (kubectl exec) cell to the Discovery oracle 2026-06-07 15:23:25 +01:00
service.go fix(discovery): bring hosts into the fingerprint model so they auto-discover (#1479) 2026-07-07 22:55:04 +01:00
service_identity.go Add distinctive-port fast-path for un-named workloads 2026-06-07 21:52:41 +01:00
service_identity_test.go Add distinctive-port fast-path for un-named workloads 2026-06-07 21:52:41 +01:00
service_test.go fix(discovery): bring hosts into the fingerprint model so they auto-discover (#1479) 2026-07-07 22:55:04 +01:00
store.go fix(discovery): bring hosts into the fingerprint model so they auto-discover (#1479) 2026-07-07 22:55:04 +01:00
store_test.go Remove 198 unreachable Go functions 2026-06-03 12:29:37 +01:00
tools_adapter.go Implement Discovery observed context UX 2026-05-20 13:21:55 +01:00
tools_adapter_test.go Implement Discovery observed context UX 2026-05-20 13:21:55 +01:00
types.go feat(discovery): suggest availability probes from discovered service types 2026-06-26 17:12:11 +01:00
types_test.go feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
url_suggestion.go fix(discovery): backfill availability suggestions for existing discoveries 2026-06-26 23:56:15 +01:00
url_suggestion_test.go Make workload discovery repair known service results 2026-06-05 09:21:53 +01:00