Skip to content

Commit 1744f18

Browse files
kvapsclaude
andcommitted
docs(plan): record stand walkthrough through REST CRUD + CRD persist
curl POST /v1/resource-definitions on the deployed pod returns 201 and the underlying ResourceDefinition.blockstor.io.blockstor.io CRD appears via kubectl. Stats endpoint reflects nodes+RDs counts. Pin the prereqs that are already in place and what's left for the real-DRBD smoke (ApplyResources wiring, storage-pool seed, controller-side reconcile dispatch). Co-Authored-By: Claude <noreply@anthropic.com> Signed-off-by: Andrei Kvapil <kvapss@gmail.com>
1 parent 1b4b76f commit 1744f18

1 file changed

Lines changed: 24 additions & 0 deletions

File tree

PLAN.md

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -250,6 +250,30 @@ Full scope list lives in `docs/csi-api-surface.md` (to be created in Phase 1).
250250
- [x] Resource reconciler (`pkg/satellite.Reconciler`) routes DesiredResource batches: storage provider CreateVolume per volume, ConfFileBuilder writes /etc/drbd.d/<name>.res, drbdadm create-md (first activation, non-DISKLESS) + adjust. Status writeback from events2 stream is the next slice.
251251
- [x] Status writeback first half: `pkg/satellite.Observer` translates parsed drbd.Event values into ResourceObservedEvent (4 contract tests). Wire-up to gRPC stream pending the controller-side handler.
252252
- [ ] Resource on 2 nodes replicates and goes UpToDate (real DRBD smoke)
253+
— Prereqs landed (controller running in-cluster, satellites
254+
registered, REST CRUD persists CRDs). Remaining wiring: server-
255+
side handler for `ApplyResources` (controller→satellite push) or
256+
a periodic pull RPC; controller-side reconcile that diffs the
257+
desired set and dispatches per node; storage-pool seeding so the
258+
satellite has somewhere to put the LV. Once those land, an
259+
autoplaced 2-replica RD walks all the way through to UpToDate
260+
without touching the Java oracle.
261+
262+
**Stand walkthrough so far** (proven on `ssh ubuntu@129.213.29.101`,
263+
2026-05-08):
264+
1. `docker build` two-stage Dockerfile — controller (distroless) and
265+
satellite (debian-slim with drbd-utils + lvm2 + cryptsetup), pushed
266+
to local registry on `10.164.0.1:5000`.
267+
2. Talos `MachineConfig` patched once to trust http://10.164.0.1:5000.
268+
3. `kubectl apply -f config/crd/bases/` — 7 CRDs.
269+
4. `kubectl apply -f stand/blockstor-deploy.yaml` — controller pod
270+
1/1, REST :3370 + gRPC :7000.
271+
5. `kubectl apply -f stand/blockstor-satellite-daemonset.yaml`
272+
3 satellite pods, each Hello'd the controller; `kubectl get
273+
nodes.blockstor.io.blockstor.io` shows the 3 workers.
274+
6. `curl POST /v1/resource-definitions` — 201, CRD created, `kubectl
275+
get resourcedefinitions.blockstor.io.blockstor.io` shows it; stats
276+
endpoint reports `{"nodes":3,"resource_definitions":1,...}`.
253277

254278
**Exit**: smoke test with two replicas, real DRBD, PVC mounted on node A then on node B (failover).
255279

0 commit comments

Comments
 (0)