Skip to content

epic(cluster): observability, backup & recovery #1090

Open

Description

@dezren39

Observability, backup & recovery

Purpose

The cluster can be seen, backed up, and proven restorable - including after a power cut.

Scope

Metrics/logging (Cozystack ships VictoriaMetrics+Grafana); etcd + TALM config recovery vault (encrypted snapshots offsite, e.g. R2); restore drills that actually restore Postgres and etcd on a schedule; power-return boot order (dependency-sequenced bring-up) documented and tested; SMART drive-health watch feeding the storage records from epic 5.

Execution mode

Online (drills may schedule a physical power test with Drew).

Dependencies

Depends on epics 7 and 8.

Acceptance

Dashboards live; at least one full restore drill passed and recorded; power-return procedure written and exercised once.

Structure

Part of the basement cluster program. Project home: planning/roadmaps/basement-cluster.md in this repo. Full program register: goal workspace files/idea-register-2026-10-20.md (Muse goal goal_ba17a5777c21). Detailed task issues are filed as sub-issues of this epic; dependencies use blocks / blocked-by links.

Hard rules for the whole program: no HashiCorp anything; everything bootstrappable from config, no hand-built state.

Activity

  1. added
    area/infraInfrastructure, deployment, and operations
    epicMeta-issue grouping multiple items (org Project Type=Epic)
    effort/lLarge: multi-day or open-ended; expect staged check-ins
    meta/enrichedIntake review done: acceptance criteria, links, and normalized labels added
    mode/onlineFully doable remotely: design, config, code, cloud
    on Oct 27, 2026
  2. developing-today commented on Oct 27, 2026

    @developing-today
    Contributor
  3. dezren39 commented on Oct 27, 2026

    @dezren39
    MemberAuthor

    Epic map — basement cluster program

    # Epic Issue
    1 Hardware inventory & first-node selection #1080
    2 Firmware / BIOS / BMC audit #1081
    3 Basement power & space #1083
    4 Network fabric #1084
    5 Storage assembly & validation #1085
    6 TALM + Talos bootstrap #1086
    7 Cozystack platform #1087
    8 Platform services #1088
    9 Observability, backup & recovery #1090
    10 Cloud extension (OCI & egress) #1091
    11 First workload: ID app #1092
    12 ESP32 wing #1093

    This epic: #1090 — Observability, backup & recovery
    Dependencies: Blocked by #1087, #1088

    Filed in the 2026-10-26 cluster seed. Project home: planning/roadmaps/basement-cluster.md.

  4. added
    queue/queuedHas a queued task in the Supabase agent queue
    source/creatorFiled by the new-issue-creator job
    task/triageQueue packet kind: verify, reproduce, and route this item
    on Nov 3, 2026
  5. 7 remaining items

  6. dezren39 commented on Nov 3, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · handed off

    • Agent: opencode-claimant
    • Task: repo-health-code-pilot task 7634, issue epic(cluster): observability, backup & recovery #1090
    • Session / ID: ses_e5e5df8a4b7ffeumc74xfO2tt6
    • Worker: repo-worker-code (bound worker uses this id for all queue helper verbs)
    • Route: opencode-route/workhorse, agent build
    • State: claimed task bound at launch; OpenCode worker prompt admitted.
  7. added
    queue/parkedQueue task is parked (waiting on CI, time, or an event)
    status/parkedDeliberately paused with a recorded resume condition
    queue/claimedQueue worker lifecycle state
    and removed
    queue/claimedQueue worker lifecycle state
    status/parkedDeliberately paused with a recorded resume condition
    queue/parkedQueue task is parked (waiting on CI, time, or an event)
    on Nov 3, 2026
  8. dezren39 commented on Nov 3, 2026

    @dezren39
    MemberAuthor

    agent-note:v1 — task 7634 handed off (Lane A worker, 2026-11-03): execution lane is opencode with a bound session (ses_e5e5df8a4b7ffeumc74xfO2tt6) that already completed the triage work — verdict still_live_dependency_blocked (blocked by #1087 and #1088), with its triage note prepared at ~/git/fleet/notes/7634-1090-triage-note.md on the laptop after earlier posting attempts hit the GitHub secondary rate limit. The bound session posts that note and completes task 7634 as triaged; this lane does not work it directly.

  9. dezren39 commented on Nov 3, 2026

    @dezren39
    MemberAuthor

    agent-note:v1 — triage (queue task 7634)

    state: triaged — still live, correctly dependency-blocked, no children filed yet

    Verdict at current main (0467ae0f9, 2026-11-03): this epic is still live and its scope has not changed. The roadmap still carries it under "Later" as proposed (planning/roadmaps/basement-cluster.md:32), and no cluster observability/backup implementation exists in the tree yet (no VictoriaMetrics/Grafana config, no etcd/TALM snapshot job, no restore-drill assets). Nothing here is stale, superseded, or already handled, so the issue stays open.

    Dependencies (revalidated against fresh GitHub state):

    Children: none filed — the sub-issue list is empty and I found no closed children from earlier passes. That is correct for now: the child tasks (dashboards, vault, drills, boot order, SMART watch) only become concrete once Cozystack's bundled VictoriaMetrics/Grafana and the CNPG/RustFS choices from #1087/#1088 exist.

    Fix path / ordering once unblocked:

    1. Metrics/logging — enable Cozystack's bundled VictoriaMetrics + Grafana and define the dashboard set (nodes, etcd, CNPG Postgres, RustFS).
    2. etcd + TALM recovery vault — encrypted snapshots to offsite storage (e.g. R2) on a schedule, with retention and key handling.
    3. Restore drills — scheduled drills that actually restore Postgres (CNPG) and etcd, with one full pass recorded as evidence.
    4. Power-return boot order — dependency-sequenced bring-up procedure, written and exercised once with Drew (epic is mode/online).
    5. SMART drive-health watch — feed drive health into epic 5's per-drive storage records.

    Unblock condition: #1087 and #1088 reach done / Cozystack + CNPG are running. At that point file the five child tasks above as sub-issues of this epic and schedule the restore drill and the physical power test with Drew.

    Coverage: leave open; re-check when the blocked-by epics close. No blocker escalation is needed — this is normal program ordering, not a decision for Drew.

  10. removed
    task/triageQueue packet kind: verify, reproduce, and route this item
    queue/claimedQueue worker lifecycle state
    work/assignedQueue worker lifecycle state
    on Nov 3, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

area/infraInfrastructure, deployment, and operationseffort/lLarge: multi-day or open-ended; expect staged check-insepicMeta-issue grouping multiple items (org Project Type=Epic)meta/enrichedIntake review done: acceptance criteria, links, and normalized labels addedmode/onlineFully doable remotely: design, config, code, cloudsource/creatorFiled by the new-issue-creator job

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions