Skip to content

Commit 9762984

Browse files
kvapsclaude
andcommitted
docs(plan): note Phase 10.1 controllers scaffold landed (stubs only)
Co-Authored-By: Claude <noreply@anthropic.com> Signed-off-by: Andrei Kvapil <kvapss@gmail.com>
1 parent 4794ae2 commit 9762984

1 file changed

Lines changed: 1 addition & 1 deletion

File tree

PLAN.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -527,7 +527,7 @@ and per-object configuration lives in typed Spec / Status fields.
527527

528528
### 10.1 — Satellite as a controller-runtime controller
529529

530-
- [ ] New `pkg/satellite/controllers/` package wired into the satellite agent. Reconcilers for Resource (filtered by `Spec.NodeName == cfg.NodeName`), ResourceDefinition (parent lookup, no own reconcile), Snapshot (filtered by `Spec.Nodes ∋ cfg.NodeName`), StoragePool (filtered by `Spec.NodeName == cfg.NodeName`).
530+
- [~] `pkg/satellite/controllers/` package scaffold (2026-05-10). All four reconcilers (Resource / ResourceDefinition / Snapshot / StoragePool) defined with the right node-name predicates (or membership filter for Snapshot) + `NewManager` builder that wires them onto a controller-runtime manager. Reconciler bodies are stubs (Get + log + return) — subsequent commits fill in the apply path by delegating to `Config.Apply` (the existing `pkg/satellite.Reconciler`). NOT yet wired into `agent.Run` — gRPC server stays primary until Phase 10.6 retires it.
531531
- [ ] Resource reconciler on satellite replaces the gRPC `ApplyResources` consumer with a native CRD watch. On reconcile: read Resource Spec + parent RD + peers (List by RD-name) + Node info + effective DRBD options (resolver re-runs satellite-side, reading RG via apiserver) → drive `pkg/satellite/reconciler.applyOne` (existing logic, lifted out from the gRPC handler).
532532
- [ ] DeleteResource flow: on Resource with non-zero `DeletionTimestamp` + the satellite's own finalizer, satellite runs the existing teardown (`drbdadm down``DeleteVolume``rm .res``cryptsetup luksClose`) then strips its own finalizer. Today's controller-side `runDelete` (`internal/controller.ResourceReconciler.runDelete`) goes away — finalizer ownership transfers to the satellite.
533533
- [x] ServiceAccount + RBAC manifests (2026-05-10). `config/rbac/satellite_role.yaml` defines the ClusterRole + ServiceAccount + binding the satellite needs once Phase 10.1 promotes it to a controller-runtime manager: read-only on RG/RD/Node/Snapshot/ControllerConfig; read+write on Resource (own finalizer); write on `*/status` subresources via SSA from Phase 10.2; full CRUD on PhysicalDevice (discovery+delete-on-attach); read on Secrets in the controller namespace; emit Events; per-node leader-election Leases. Wired into `config/rbac/kustomization.yaml`. Dormant until the satellite-as-controller-runtime code lands.

0 commit comments

Comments
 (0)