Add a machine or node
Every machine belongs to one region (ADR-0009), so use that region’s inventory and environment file.
Lab: add an agent machine (planned, Phase 2)
Section titled “Lab: add an agent machine (planned, Phase 2)”- Install Einsora on the machine (see 00-quickstart.md, or mac-host.md for a Mac).
- In the dashboard: Machines → Add machine → copy the enrolment token.
- On the new machine, run
einsora agent --join <token>. The agent dials out, so no ports need opening. - Check: the machine shows Online, with the right CPU, RAM, and accelerators (NVIDIA GPUs, or the Apple GPU and its unified memory).
- Burn-in if it has a GPU:
einsora-ml burnin(CUDA today; Metal planned). - Sharing level: new machines are private. Change this only if the owner wants to share (ADR-0014).
Datacenter: add a Kubernetes node
Section titled “Datacenter: add a Kubernetes node”CPU worker nodes (for CPU instances and fallback, ADR-0010) and control-plane CPU servers skip the
iommu role, the GPU steps, and the GPU burn-in. Check that their CPU capacity shows up for the CPU classes instead.
- Before racking: firmware updates and BIOS settings as in 01, step 1.
- Install Ubuntu as in 01, step 2.
- Inventory: add the host to
infra/ansible/inventory/hosts.yml:- under
k3s_serversif you’re growing to 3 servers for HA, otherwise underk3s_agents - set
gpu_workload_configfor its role (container or vm-passthrough) - add its WireGuard key to the vault
- under
- Ansible, limited to the new host:
Terminal window ansible-playbook site.yml --limit <new-host> --check --diff --ask-vault-passansible-playbook site.yml --limit <new-host> --ask-vault-pass -e iommu_allow_reboot=true - Join check:
kubectl get nodesshows the node Ready, with GPU Operator pods running on it. - Burn-in on every GPU (02, burn-in). If a GPU fails, keep the node out of service: cordon it and arrange a repair or replacement.
- Capacity: if the node has a new GPU model, add a GPU class to
images/catalog.yamland the device togpuPassthrough.devices. The controller picks up capacity automatically. Verify that its next admission pass uses the new GPUs. - Storage: with Longhorn, raise
storage.replicasonce there are at least 3 nodes, and check that existing volumes rebuild. With Ceph, check that new OSDs joined and wait forHEALTH_OK. - Watch the first week: XID and ECC errors, temperatures under real load, and power draw against the circuit budget.
Removing a node or machine
Section titled “Removing a node or machine”- Tell the affected users first, then stop or move their workloads. Datacenter:
kubectl cordon <node>. Lab: disable the machine in the dashboard. - Datacenter:
kubectl drain <node> --ignore-daemonsets --delete-emptydir-data. - Datacenter storage: for Ceph, mark the node’s OSDs out and wait for rebalance. For Longhorn, evict its replicas.
- Remove it:
kubectl delete node <node>and remove the host from inventory, or revoke the agent’s certificate in the dashboard.