Files
doc/ks2/decommission.md
T
Julien LutranandClaude Fable 5 a0e3a7dd86 doc: split per-host READMEs, gitea cross-repo links, consistency pass
- nuc/README.md and ks4/README.md carry the host sections (+ network
  flows) that lived in the top-level README; links rebased
- top README: repo links (doc/scripts on git.lutran.fr), index points
  at the new per-host pages
- cross-repo references now use https://git.lutran.fr/julien/scripts
  instead of relative ../scripts paths that resolve nowhere
- plakar-s3-data.md and plakar-incus-integration.md marked SUPERSEDED
  / RETIRED with pointers to restic-backup.md; their measurements and
  rationale kept
- install.md, local-backup-cron.md, incus-copy.md: crontab sections
  updated to the live schedule (01:00 replicas, 05:00 restic, Sun
  maintenance); retired legs labelled as such
- restic-backup.md: status live, cutover recorded, post-GC memory
  estimate, seed plan dated
- seafile-gc.md: online GC noted, stale 'crons commented out' removed
- ks2/: what-ks2-does-today rewritten (nothing writes to it any more),
  legs table and gates reflect restic, decommission steps updated
- db-exclude replaces the plakar-era config name (script keeps a
  fallback)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-28 16:04:07 +02:00

2.4 KiB

ks2 decommission — final checklist

Status: prepared — execute only when every gate in plan.md is ticked. Rental ends Sep 30, 2026; leave a few days of margin.

Preconditions (the plan's release gates)

  • restic S3 leg running nightly for ≥ a week, done (rc=0), restore test passed (restic-backup.md §7)
  • nuc pull leg seeded and one instance test-restored (nuc-seed.md)
  • local leg (sdb5) cron green in /var/log/incus-copy.log

1. Cut the last flows to ks2 (root on ks4)

crontab -e   # remove any remaining ks2 line (the 02:00 push, if it was
             # re-enabled; the 04:00 incus-backup.sh line is long gone)
incus remote list                 # if a "ks2" remote is still defined:
incus remote remove ks2
# drop the rsyncbackup SSH key if it exists only for ks2:
ls /root/.ssh/id_rsyncbackup* && rm -i /root/.ssh/id_rsyncbackup*

2. Last look at ks2 before wiping (root on ks2)

# anything in the rsync tree newer than the S3 cutover?
find /backup/ns3061243 -newermt '2026-08-23' | head
# pre-2023 dirs (catc, mythoughts, qcm, scripts): instances still
# exist stopped on ks4 — spot-check nothing unique remains:
ls /backup/ns3061243/{catc,mythoughts,qcm,scripts}

Archive anything unique into the restic dump dir on ks4 (/backup/dumps) — it then rides the nightly S3 snapshot for free.

3. Wipe and terminate

# on ks2 — destroy the data (both pools hold copies of personal data):
zpool destroy backup && zpool destroy data
# optional: shred the OS disks via OVH rescue mode / reinstall

Then in the OVH manager: cancel the ks2 (Kimsufi) server before the renewal date.

4. Post-mortem cleanup

  • Update doc/README.md: remove ks2 from the ks4 durability bullet and the index line for ks2/s "being decommissioned" wording (keep the folder as history)
  • Retire scripts/incus-backup.sh + incus-backup.db in the repo (superseded by restic-backup.sh) — keep for reference, note the retirement in their headers
  • login container cleanup: the native postgres still holds the pre-migration outline DB — dropdb outline, remove the package (noted in plakar-s3-data.md §3)
  • Mark the ks2 line in plan.md done, date it