[Priority 2] Tailnet service discovery automation #7

Closed
opened 2026-03-10 20:45:42 +00:00 by Mark · 2 comments
Owner

Auto-discover mesh services on tailnet.

Services to discover

  • forgejo.tail018ac4.ts.net
  • n8n.tail018ac4.ts.net
  • ldr.tail018ac4.ts.net
  • unstable.tail018ac4.ts.net (Redis, Ollama)

Implementation

  • Query Tailscale API for mesh-tagged nodes
  • DNS resolution for service endpoints
  • Auto-update registry with available services

See

  • IMMEDIATE_INTEGRATION.md (Action 4)
Auto-discover mesh services on tailnet. ## Services to discover - forgejo.tail018ac4.ts.net - n8n.tail018ac4.ts.net - ldr.tail018ac4.ts.net - unstable.tail018ac4.ts.net (Redis, Ollama) ## Implementation - Query Tailscale API for mesh-tagged nodes - DNS resolution for service endpoints - Auto-update registry with available services ## See - IMMEDIATE_INTEGRATION.md (Action 4)
Author
Owner

Phase Dependency Mapping

Linked to Phase Tracker: #27 (Phase 0: Foundation MVP) / #29 (Phase 2: Federation)

Prerequisites:

  • Tailscale network configured
  • Basic mesh node operational

Blocks:

  • #19 (Multi-node mesh) - needs service discovery
  • Phase 2 federation features

Context: Bridges Phase 0 infrastructure → Phase 2 scaling
Priority: P1 (enables multi-node)

Acceptance Criteria:

  • Automatic node discovery via tailnet
  • Service registration/deregistration
  • Health checking across nodes
  • DNS resolution for mesh services
## Phase Dependency Mapping **Linked to Phase Tracker:** #27 (Phase 0: Foundation MVP) / #29 (Phase 2: Federation) **Prerequisites:** - Tailscale network configured - Basic mesh node operational **Blocks:** - #19 (Multi-node mesh) - needs service discovery - Phase 2 federation features **Context:** Bridges Phase 0 infrastructure → Phase 2 scaling **Priority:** P1 (enables multi-node) **Acceptance Criteria:** - Automatic node discovery via tailnet - Service registration/deregistration - Health checking across nodes - DNS resolution for mesh services
Mark closed this issue 2026-03-14 20:27:23 +00:00
Author
Owner

✅ COMPLETED - Phase 2 Federation

Implementation Summary:

  • Tailscale API integration for node discovery
  • DNS resolution for service endpoints
  • Service type detection (Redis, Ollama, HTTP)
  • Health checks every 60 seconds
  • MeshLedger integration for service registry
  • Prunes stale services (>5 min no heartbeat)

Services Discovered:

  • forgejo.tail018ac4.ts.net
  • n8n.tail018ac4.ts.net
  • ldr.tail018ac4.ts.net
  • unstable.tail018ac4.ts.net (Redis, Ollama)

Usage:

# One-time scan
python substrate/tailnet_discovery.py --scan

# Continuous daemon
python substrate/tailnet_discovery.py --daemon

Files Changed:

  • substrate/tailnet_discovery.py (new)
  • tests/unit/test_tailnet_discovery.py (new)

Verification:

pytest tests/unit/test_tailnet_discovery.py -v
# Tests passing (DNS, health checks, discovery)

Closed as part of Phase 2 completion.

## ✅ COMPLETED - Phase 2 Federation **Implementation Summary:** - Tailscale API integration for node discovery - DNS resolution for service endpoints - Service type detection (Redis, Ollama, HTTP) - Health checks every 60 seconds - MeshLedger integration for service registry - Prunes stale services (>5 min no heartbeat) **Services Discovered:** - forgejo.tail018ac4.ts.net - n8n.tail018ac4.ts.net - ldr.tail018ac4.ts.net - unstable.tail018ac4.ts.net (Redis, Ollama) **Usage:** ```bash # One-time scan python substrate/tailnet_discovery.py --scan # Continuous daemon python substrate/tailnet_discovery.py --daemon ``` **Files Changed:** - substrate/tailnet_discovery.py (new) - tests/unit/test_tailnet_discovery.py (new) **Verification:** ```bash pytest tests/unit/test_tailnet_discovery.py -v # Tests passing (DNS, health checks, discovery) ``` **Closed as part of Phase 2 completion.**
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
Mark/mesh-seed#7
No description provided.