v0.2 · TAKEOVER IN PROGRESS
Nodewright¶
A Kubernetes-native operator for the lifecycle of edge storage clusters. It turns a 4,800-line bash DaemonSet — the thing that today bootstraps, networks, and heals edge clusters at the storage layer — into typed CRDs, controllers, a UI, and an audit-grade history.
The one-line thesis¶
The operator owns intent; the agent owns host-level mutation.
Today a single privileged bash DaemonSet (vx-rail-node-init) does everything on every edge node:
cluster bootstrap, bond + VLAN networking, LINSTOR/DRBD storage, single→multi-node upgrades, taint
management, and boot-time recovery. The problem isn't what it does — it's that a per-node script
makes cluster-wide decisions from stale state, and that's where the incidents come from.
Nodewright splits those concerns: a control-plane operator makes the cluster-wide decisions and records them as typed, validated CRDs; a node agent performs only the local host mutations the operator tells it to, and reports back. The DaemonSet doesn't get thrown away — it becomes that thin agent.
What you get¶
| Typed CRDs instead of ConfigMap blobs | Every workflow and every piece of state is a validated Kubernetes object, not a stringly-typed annotation. |
| First-class workflows | Migrations, storage upgrades, and bond flips become declarative resources with a phase, a status, and safe-by-construction stops — not a 30-step chat thread. |
| A unified health surface | One place to see cluster and per-node state, rolled up from what's actually observed. |
| An audit trail | Who did what, when, with a tamper-evident chain. |
| Extensibility by design | Storage backends, operating systems, and site topologies are pluggable behind stable interfaces — the current customer shape is one profile, not the only one. |
Where to go next¶
-
Architecture → The big picture: the operator/agent split, the control plane, and how it wraps the existing DaemonSet.
-
Components → The CRDs, the controllers, the observation bridge, and the pluggable provider interfaces.
-
How it works → The reconcile loop, the bond-flip machine, its recovery ladder, and the I6 data-consistency gate.
-
Roadmap & Status → What's built today, and the path from a read-only bridge to full parity.
Honest status
The read-only observation bridge has shipped, and the write-side is built: the coordinated bond-flip state machine, its automated recovery ladder, the operator→agent instruction protocol, the node agent, six safety invariants, and the I6 data-consistency gate that distrusts DRBD's "UpToDate" verdict — all exercised against a fake DRBD/KubeVirt harness. What's not yet wired is real host mutation: the flip controller ships default-off, installs no CRDs, and its host-op primitives stay dormant until hardware-lab validation. This site marks what executes today vs. what's gated for the next phase throughout — see Roadmap & Status.