# Cloud Map + VPC Lattice (standalone) Operator templates for **AWS Cloud Map** service discovery and optional **VPC Lattice** service network routing. No live AWS account is required on the AetherForge command deck — host the registry JSON yourself and point agents at it. ## Files | File | Purpose | |------|---------| | `registry-endpoint.json` | Cloud Map HTTP registry document served to agents | | `lattice-snippet.yaml` | VPC Lattice service network + service association starter | | `service-registry.json` | Cloud Map `CreateService` input template | ## Agent configuration Set on seeders/miners that should poll the registry: ```bash export AETHERFORGE_CLOUD_MAP_ENDPOINT="https://YOUR_ORIGIN/registry-endpoint.json" ``` Agents merge healthy instances into fleet gossip as `know_node` records and refresh LAN seeder hints for WebRTC mesh fallback. ## BGP spread hint Calibrate `data/config.json`: ```json { "server": { "cloud_map_namespace": "prod.local", "cloud_map_service": "seeder" } } ``` Signed deploy plans attach `spread_route_hint.route_via` = `seeder.svc.prod.local` style DNS. ## Operator workflow 1. Export ZIP from Emberwake → **cloud-map** template (or copy files from this folder). 2. Create Cloud Map namespace `prod.local` and service `seeder` in your AWS account (optional if using HTTP-only registry). 3. Host `registry-endpoint.json` on S3/CloudFront or Lattice-exposed HTTPS origin. 4. Apply `lattice-snippet.yaml` when routing VPC workloads through a Lattice service network. 5. Set `AETHERFORGE_CLOUD_MAP_ENDPOINT` on agents to the hosted registry URL. ## Registry JSON shape ```json { "namespace": "prod.local", "service": "seeder", "updated_at": "2026-06-07T12:00:00Z", "instances": [ { "agent_id": "REPLACE_AGENT_ID", "dns_name": "seeder.svc.prod.local", "ip": "10.0.1.50", "fetch_url": "https://YOUR_SERVER/api/v1/public/erasure-torrent/REPLACE_TOKEN/manifest", "healthy": true } ] } ``` Healthy instances become `know_node` gossip targets; `fetch_url` feeds LAN seeder hints.