Skip to content

make backup's volume sets stay on the host they protect: ADR-0015's copy to oracle is decided and unbuilt #535

Description

@Gerrrt

Decided and unbuilt

docs/roadmap.md's backup paragraph: "The volume sets make backup writes still sit on the host they protect … ADR-0015 sends them to oracle … and leaves only the copying to build." The firewall's configuration already makes that trip (#92's first half, verified 2026-09-03). The volume archives — Prometheus's TSDB, Loki, Grafana, and on trinity one day the tier's — do not.

A backup on the disk it backs up is a copy, not a backup. ADR-0015 chose oracle as the destination and the decision has sat inside #92's roadmap bullet, where it stopped belonging when ADR-0034 re-scoped that issue to the firewall rehearsal.

What to build

  • A step in the backup timer, after the archive is written and verified, that copies the set to oracle over the path the firewall copy already uses (same user, atropos; same key; same directory convention).
  • Retention on oracle: how many sets, and who prunes them. The firewall copy's answer is probably the right one.
  • verify-backups learns to check the remote copy exists and matches, or the BackupCopyMissing-shaped rule that The heartbeat receiver is not a dead man's switch — nothing watches for its absence #359's dead-man pattern suggests.
  • restore-the-stack.md gains the sentence "the set is on oracle at …", because a restore runbook that starts from a host that has just died is a runbook that starts nowhere.

Done when

A set written on prometheus is on oracle within the same timer run, a rule fires when one is not, and the restore runbook starts from the remote copy.

Refs #92, ADR-0015.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    securityseq/1Step 1 within its milestone; same number = can run in parallel

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions