Skip to content

v0.1.0

Choose a tag to compare

@dutyc dutyc released this 03 Aug 13:46
· 46 commits to main since this release

iPXE-All-Ready is an open-source, stateless compute-node delivery platform built on iPXE and iSCSI. Nodes without local storage boot over the network with no pre-registration and no vendor lock-in.

This release marks the completion of Phase 1: the project has evolved from a diskless-boot proof of concept into a full control plane. New machines are detected and registered automatically on power-on; attaching system disks and switching the default boot OS are performed from the web UI.

Features

Batch System Disk Deployment

  • Batch selection with Shift-range multi-select; storage node assignment via single-node takeover, per-worker drag-and-drop, or round-robin spread across multiple nodes.
  • Disk creation from a master image (reflink clone with copy fallback) or as an empty sparse disk; successfully created workers are automatically set as the default boot OS.
  • Workers that already have a system disk are highlighted; duplicate OS creation is skipped.

Batch Worker Deletion

  • Dedicated deletion mode, mutually exclusive with batch creation. Confirmation dialog supports deleting the backing .img files and ignoring missing targets.
  • Items are executed independently: a failed item does not affect the rest. Successful items are persisted to the ledger and dnsmasq is reloaded once per batch.

Agent Registration and LUN Management

  • Two-step agent registration: POST /agents/probe derives registration parameters (role, tags, iscsi_server) from the agent's health and capability endpoints; POST /agents persists them to agents.yml (tokens support ${ENV} placeholders).
  • Direct LUN management per agent: list, create disk, create CD, delete, and scan/recreate targets.

Boot Variables and Disk Management

  • /boot-vars returns backend-specific connection separators (stgt :::1: / LIO ::::), enabling a single iPXE script across backends.
  • Per-worker disk deletion and a configurable default boot OS (os / menu_default / menu_timeout, each settable or clearable).

Platform Foundation

  • Zero-touch provisioning: unbound MACs are registered automatically with an auto-assigned hostname.
  • Multi-OS support verified end to end: Windows 11 24H2/25H2, Ubuntu 22.04 LTS, and Debian 12.
  • File-based state management: agents.yml, workers.yml, dhcp-hosts.conf, and operations.jsonl carry all control-plane state; no database, fully diffable and manually recoverable.
  • The bootstrap chain is built with debootstrap and dism++ instead of vendor installers, keeping every stage auditable.

Quick Start

git clone https://github.com/dutyc/ipxe-all-ready
cd ipxe-all-ready

# 1. Adapt dnsmasq/dnsmasq.conf: NIC name, subnet, gateway
# 2. Prepare the Control Plane config (the repo tracks only *.env.example
#    templates, which carry full comments):
cp control_plane/control_plane.env.example control_plane/control_plane.env
#    - Optional: set IPXE_CP_TOKEN to enable API auth (keep it in sync
#      with the Web UI's VITE_CP_TOKEN)
docker compose up -d

# 3. (Optional) Storage node: deploy the iscsi-server directory on it
#    cp iscsi-server/.env.example iscsi-server/.env
#    set IPXE_AGENT_TOKEN (must match the token of this node in agents.yml)
#    docker compose -f iscsi-server/docker-compose.yml up -d
  • Web UI: http://<controller-ip>:4838
  • Control Plane API: http://<controller-ip>:4839

Full deployment guidance: Environment Setup guide

Changes in This Release

Features

  • Batch system disk deployment (storage node assignment, default_os auto-set)
  • Batch worker deletion (independent mode, mutually exclusive with batch creation)
  • Two-step agent probe and registration; "Add Agent" flow in the Agents page
  • Direct agent LUN management endpoints (/agents/{id}/luns, scan)
  • Backend-specific connection separators in /boot-vars
  • Per-worker disk deletion; default boot OS fields settable/clearable

Engineering and release preparation

  • Environment configuration finalized: webui/app/.env.example added; all .env(.example) files fully commented
  • Sensitive-information cleanup: files containing deployment tokens untracked; the repository ships *.example templates only
  • Version unified to 0.1.0

Notes

  • Storage-node agents drive the local iSCSI container via docker.sock; expose them only on the control or trusted management network, never directly to the public internet.
  • The LIO backend does not support CD-ROM devices; schedule ISO mounts to stgt nodes (cd=true).
  • This project targets intranet deployments; TLS and multi-tenant isolation are not provided.

Documentation

  • Architecture and core boot chain: https://ipxe.lecreate.asia
  • Windows 11 diskless workflow, Debian 12 diskless workflow, iBFT evidence chain, control-plane reference

Roadmap

The long-term goal is a cross-platform, cross-architecture, cloud-native stateless compute infrastructure. Phase planning is maintained in ROADMAP.md.