Story — Hero Cloud Bootstrapper #11
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Overview
Deploying a hero_cloud node today requires multiple manual
steps. This story introduces hero_cloud_bootstrapper — a
single binary driven by a remote TOML manifest that knows
what binaries are needed, downloads them, and keeps them
up to date automatically.
It detects whether it is running on a host node or inside
a VM and installs only what is needed for each environment.
The Manifest
bootstrapper.toml is hosted remotely and is the single
source of truth for all binary versions across the fleet.
Bump a version → the entire fleet picks it up on next check.
How It Works
On a new node:
bootstrapper install
→ fetches bootstrapper.toml
→ detects environment (node or vm)
→ downloads and installs the right binaries
→ node is ready
On deploy_vm():
→ [vm] binaries injected into VM rootfs
→ zinit runs as PID 1 inside VM
→ mycelium gives VM a unique IPv6
→ zinit UI accessible on :9999 via mycelium IP
On update:
→ bootstrapper fetches latest manifest
→ downloads only what changed
→ removes old binaries
→ restarts affected zinit services
Updates run on every node_register and on a
configurable timer (default: hourly).
Issues Under This Story
Create hero_cloud_bootstrapper repo — manifest,
environment detection, downloader, installer
Add updater — diff versions, download new,
remove old, restart zinit services
node_register triggers bootstrapper before
hardware detection
deploy_vm injects [vm] binaries into VM rootfs —
zinit as PID 1, mycelium for networking
Definition of Done
Story — Pooler: Single Binary Node Bootstrap with Managed VM Environmentto story: hero_cloud_bootstrapper — TOML-driven binary bootstrap for nodes and VMs with dynamic version updatesstory: hero_cloud_bootstrapper — TOML-driven binary bootstrap for nodes and VMs with dynamic version updatesto Story — Hero Cloud Bootstrapperits not needed its part of the service manager in hero-os
no point doing this again