Compare commits
2 Commits
main
...
4c727f809d
| Author | SHA1 | Date | |
|---|---|---|---|
| 4c727f809d | |||
|
|
c52b0d55f7 |
65
arch.md
Normal file
65
arch.md
Normal file
@@ -0,0 +1,65 @@
|
||||
## Arch
|
||||
|
||||

|
||||
|
||||
## Components
|
||||
|
||||
- **EFI Image**
|
||||
Minimal kernel providing a boot environment and network setup.
|
||||
|
||||
- **Identity**
|
||||
Manages node lifecycle: registration, updates, and identity.
|
||||
|
||||
- **Supervisor**
|
||||
Message router for registration procedures and authentication.
|
||||
|
||||
- **Runners**
|
||||
Workers listening on a job queue to execute tasks like VM CRUD operations.
|
||||
|
||||
- **SALs (System Abstraction Layers)**
|
||||
Wrappers around tools such as `cloud-hypervisor`, `btrfs`, and networking utilities.
|
||||
|
||||
- **Coord (Coordinator)**
|
||||
Workflow manager that selects the supervisor and ensures task completion.
|
||||
|
||||
- **Ledger**
|
||||
Centralized registration service for nodes, identity manager for users, and persistent store.
|
||||
|
||||
- **Rhai Scripts**
|
||||
Minimal scripts to execute high-level operations like VM deployment.
|
||||
|
||||
---
|
||||
|
||||
## Node Lifecycle Flow
|
||||
|
||||
1. Build and push the **EFI image** to the bootstrap system.
|
||||
2. Bootstrap flashes the image on a USB stick or generates an iPXE image.
|
||||
3. Once booted and network is set up, the **Identity Manager** triggers.
|
||||
4. Identity Manager contacts the centralized control plane (**Ledger/Coord**) for registration.
|
||||
5. Node state (identity and keys) is saved, and uptime reports are sent periodically.
|
||||
|
||||
---
|
||||
|
||||
## Deployment Flow
|
||||
|
||||
1. Client prepares a signed **Rhai script** with deployment specs, including loops and logic.
|
||||
2. Script is sent to the **Coord**, which federates it to the relevant **Supervisor**, tracking execution and retries.
|
||||
3. **Supervisor** verifies signatures, validates the script, and places jobs into the **Redis queue**.
|
||||
4. Multiple **Runners** pick jobs from the queue and execute the corresponding **SALs**.
|
||||
|
||||
---
|
||||
|
||||
## Features and Workloads
|
||||
|
||||
### Networking
|
||||
- Only Mycelium supported.
|
||||
- No WireGuard/Yggdrasil/public overlays (public IPs only for gateway nodes).
|
||||
|
||||
### Workloads
|
||||
- Machines (VMs/containers)
|
||||
- HeroDB
|
||||
- Potential gateway support in the future (centralized Traefik)
|
||||
- No QSFS/ZDB support
|
||||
|
||||
### Filesystem
|
||||
- Btrfs
|
||||
Reference in New Issue
Block a user