v0.6 acceptance: the delete-the-volume dogfood #159
Labels
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: Cordy/Cairn#159
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Closes the milestone; runs on the live dogfood after #152–#157 ship. The acceptance criteria from #138, executed for real:
cairn-encto zero, delete its/dataPVC entirely, recreate it empty, start the pod against the same bucket + same config secret → license, settings, share links, legal holds, peering trust (keys + peers + toggle), app passwords and notification watermarks all intact. The instance IS the bucket./dataloses nothing..cairn-state/object raw from Garage; prove it is an age file the recovery key decrypts to readable JSON and nothing else opens..cairn-stateis invisible via UI, WebDAV and shares (#155 spot checks against the live instance).Whatever this surfaces gets filed as new issues in this milestone before it closes — the #106 lesson: the dogfood IS the test.
Executed live 2026-08-10, passed. Nikola deleted the
cairn-encDeployment and thecairn-enc-dataPVC outright (kubectl delete deploy,kubectl delete pvc; dynamic provisioning meant the volume itself was gone, not retained). A Git push then recreated both from the manifests: a brand-new empty volume (pvc-489ae953…) and a fresh v0.5.6 pod.The pod booted through the empty disk directly into its full identity from the bucket: all nine state names bound with zero migration events (backend-only → adopt, per #154), advisory lock acquired,
instance peering constructed … enabled=truein the boot log — a setting that exists nowhere but the bucket's encrypted state. Nikola then verified in the UI: license present, settings intact (peering on), peer registry and issued keys intact, user files intact.The claim this milestone was named for is now demonstrated, not asserted: the instance's identity is the bucket, not the volume. The PVC that remains carries only scratch (tus spool, peering blob staging) and would-be bootstrap pointer; the
*.migratedfallbacks from #154 died with the old volume, which is exactly the retirement path the design intended.Same session also served as #160's live acceptance: a second, storage-less instance ran the full first-run flow — setup mode → wizard (Directory) → probe → bootstrap pointer → self-restart →
/setupadmin creation → login → upload — surfacing the two wizard UX faults fixed in v0.5.6 (#166).