Add Cloud Map seeder discovery with VPC Lattice operator templates.
Some checks failed
CI Docker Mining Proof / Linux agent hashrate proof (push) Has been cancelled

Agents poll AETHERFORGE_CLOUD_MAP_ENDPOINT to sync know_node gossip; deploy plans attach route_via DNS hints for standalone operator registries.
This commit is contained in:
AetherForge
2026-06-07 10:08:57 -07:00
parent 990105f7bf
commit c12565c83d
17 changed files with 650 additions and 3 deletions

View File

@@ -0,0 +1,65 @@
# 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.

View File

@@ -0,0 +1,46 @@
# VPC Lattice service network snippet (operator-owned AWS account).
# Replace placeholders before apply. Standalone mode only needs the HTTP registry URL.
#
# After apply, expose registry-endpoint.json via Lattice HTTPS listener or CloudFront.
AWSTemplateFormatVersion: "2010-09-09"
Description: AetherForge seeder discovery via VPC Lattice + Cloud Map namespace
Parameters:
NamespaceName:
Type: String
Default: "{{NAMESPACE_NAME}}"
ServiceName:
Type: String
Default: seeder
RegistryURL:
Type: String
Description: HTTPS URL agents poll (maps to AETHERFORGE_CLOUD_MAP_ENDPOINT)
Default: "{{SERVER_URL}}/api/v1/public/cloud-map/registry-endpoint.json"
Resources:
SeederServiceNetwork:
Type: AWS::VpcLattice::ServiceNetwork
Properties:
Name: aetherforge-seeder-network
AuthType: NONE
SeederLatticeService:
Type: AWS::VpcLattice::Service
Properties:
Name: !Sub "${ServiceName}-lattice"
AuthType: NONE
SeederServiceNetworkAssociation:
Type: AWS::VpcLattice::ServiceNetworkServiceAssociation
Properties:
ServiceNetworkIdentifier: !GetAtt SeederServiceNetwork.Id
ServiceIdentifier: !GetAtt SeederLatticeService.Id
Outputs:
CloudMapSeederDNS:
Description: BGP route_via hint for spread plans
Value: !Sub "${ServiceName}.svc.${NamespaceName}"
AgentRegistryEndpoint:
Description: Set AETHERFORGE_CLOUD_MAP_ENDPOINT to this URL
Value: !Ref RegistryURL

View File

@@ -1,6 +1,7 @@
{
"namespace": "{{NAMESPACE_NAME}}",
"service": "seeder",
"updated_at": "2026-06-07T00:00:00Z",
"instances": [
{
"agent_id": "REPLACE_AGENT_ID",

View File

@@ -0,0 +1,17 @@
{
"Name": "aetherforge-seeder",
"NamespaceId": "REPLACE_CLOUD_MAP_NAMESPACE_ID",
"Description": "AetherForge erasure seeder instances for VPC Lattice discovery",
"DnsConfig": {
"DnsRecords": [
{
"Type": "A",
"TTL": 10
}
],
"RoutingPolicy": "MULTIVALUE"
},
"HealthCheckCustomConfig": {
"FailureThreshold": 1
}
}