Skip to content

Commit 639ca5a

Browse files
kvapsclaude
andcommitted
docs(plan): note Phase 10.7 attach executor landed (partial)
Co-Authored-By: Claude <noreply@anthropic.com> Signed-off-by: Andrei Kvapil <kvapss@gmail.com>
1 parent a923baf commit 639ca5a

1 file changed

Lines changed: 1 addition & 0 deletions

File tree

PLAN.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -758,6 +758,7 @@ satellite-execute model the rest of Phase 10 uses.
758758

759759
**Attach flow (satellite-side reconciler):**
760760

761+
- [~] Attach reconciler (2026-05-10, partial). Pure-function `pkg/satellite/attach.go.Attach(ctx, exec, dev)` runs the kind-specific create sequence (`pvcreate → vgcreate` for LVM, `+ lvcreate --type thin-pool 100%FREE` for LVM_THIN, `zpool create -f -O compression=off -O atime=off` for ZFS, no-op for FILE). Wipe is consent-gated and runs BEFORE the create (ordering pinned). Every LVM command goes through `lvm.Args(...)` so the Phase 8.2 filter stays applied. Returns `AttachResult{PoolName, ProviderKind, Props}` ready for `Reconciler.RegisterProvider`. The watch + Status.Phase transitions + delete-on-success bookkeeping land when Phase 10.1 promotes the satellite to a controller-runtime manager. 8 unit tests pinning each kind, the wipefs ordering, and three precondition rejects.
761762
- [ ] Reconciler watches `PhysicalDevice` filtered by `metadata.labels[blockstor.io/node]=self`. On `Spec.AttachTo` set:
762763
1. Resolve `Status.StableID` → current `/dev/sdN` (may have changed since discovery). If gone → `Phase=Failed`, condition `DeviceMissing`.
763764
2. Idempotency check: is the device **already** in the target pool (`pvs grep`, `zpool status grep`)? If yes → skip to Delete (this is a re-run after a crash post-vgextend pre-Delete).

0 commit comments

Comments
 (0)