Skip to content

EPIC: Basement Talos/Cozystack cluster program #1817

Open
3 of 7 issues completed
Open

Description

@dezren39

Relocated from dezren39/darwin-nix#508 on 2026-10-28 - it was filed in the wrong repo; developing-today/code is its home. Original content follows, verbatim.


EPIC: Basement Talos/Cozystack cluster program

Turn the basement fleet — ~12 Threadripper machines, 15–16 × 16 TB helium HDDs, ≥3 TB DDR4 ECC — into a 3–5 node Talos Linux cluster under Cozystack, bootstrapped declaratively with TALM, plus the cheap-cloud program around it.

Source of truth: idea register 2026-10-20 (goal stand-up-lab-cluster-talm-talos-cozystack-postgres-rustfs). Research baseline: hidden_files/research-brief-2026-10-03.md in the goal (talm v0.35.0, Talos v1.14.1, Cozystack v1.6.4, RustFS 1.0 GA, managed Postgres = CloudNativePG).

Hard constraints (Drew, explicit)

  • No HashiCorp anything. Nomad was the plan; the company was sold. All-in on Kubernetes.
  • Everything bootstrappable and declarative. No undocumented hand-built state — that is why the machines have no OS right now. The fleet must be rebuildable from config in git.
  • Egress is the scarce resource, not compute: one 2 Gbps symmetric fiber link behind very fast, very cheap local hardware.
  • Cloud budget: Turso $5 / Cloudflare $5 Workers plans in play, free tiers preferred, $25–$30 possible later, $75 out.

Day-one cluster services

Postgres (CloudNativePG via Cozystack) · Cloudflare tunnel · Tailscale · NATS · RustFS (S3, cold tiers on HDD pools) · FluxCD running the app directly · DRBD + LINSTOR replication.

Child issues

Suggested order

  1. Hardware inventory + hardware-stats gathering: pick the first 3–5 cluster machines #1810 inventory (stats → node shortlist) and BMC/BIOS configuration audit + routine KVM screenshot verification system #1811 audit groundwork.
  2. TALM bootstrap: declarative per-node disk config for non-identical drives #1812 TALM proof-of-flow on the first nodes, with Storage pools: RAID10 HDD tier for RustFS + striped/mirrored NVMe tiers with LINSTOR/DRBD #1813 storage design feeding its per-node configs.
  3. Cozystack + day-one services on the proven nodes.
  4. Egress strategy: 2 Gbps home fiber behind Cloudflare/Turso/Tailscale #1814 egress design before anything user-facing; OCI always-free maximization: account setup + automation #1816 OCI in parallel (blocked only on Drew's email/card choice).

Blockers / open questions for Drew (from the register)

  • Basement power capacity + mess: full-fleet power-on is a long tail; 3–5 nodes first.
  • Which app does FluxCD run first ("the ID app" — name/repo)?
  • OCI account email/card; exact NIC spec + switch gear; boats.dev context; Turso account state.

Acceptance criteria

Activity

  1. developing-today commented on Oct 28, 2026

    @developing-today
    Contributor
  2. added
    priority/normalOrdinary priority (the default)
    effort/lLarge: multi-day or open-ended; expect staged check-ins
    meta/enrichedIntake review done: acceptance criteria, links, and normalized labels added
    kind/infrastructureInfrastructure / host-portability work
    meta/epicEpic / bundle of related work
    on Oct 28, 2026
  3. dezren39 commented on Oct 28, 2026

    @dezren39
    MemberAuthor

    Comments carried over from dezren39/darwin-nix#508 (verbatim, in order):


    dezren39 - 2026-10-26T19:40:20Z

    🤖 Intake review — fleet monitor, 2026-10-26 run

    Still live: this is the program epic — no merged PR found this run changes its state; children dezren39/darwin-nix#501–dezren39/darwin-nix#505 carry the first steps (per the body's child list, work starts at dezren39/darwin-nix#501 hardware stats, which decides node order).
    Related: dezren39/darwin-nix#501 (hardware inventory), dezren39/darwin-nix#502 (BMC/BIOS audit), dezren39/darwin-nix#503 (TALM bootstrap), and the 2026-10-20 idea register linked in the body (source of truth, goal stand-up-lab-cluster-talm-talos-cozystack-postgres-rustfs). dezren39/darwin-nix#507 (OCI free tier) and dezren39/darwin-nix#506 (boats.dev research) are sibling program items filed the same day.
    Notes / risks: hard constraints from the body bind every child: no HashiCorp tooling, everything declarative/rebuildable from git, egress (one 2 Gbps link) is the scarce resource, cloud budget $25–$30 possible / $75 out.
    Suggested approach: keep this as the index only — execution lives in the children, in order, starting with dezren39/darwin-nix#501.


    dezren39 - 2026-10-27T03:25:50Z

    Program structure seeded in developing-today/code (2026-10-26)

    This program now has its standard home, per Drew's project-structure direction:

    Mapping from this repo's Oct 20 issues: nixdezren39/nix#501 -> code#1080, nixdezren39/nix#502 -> code#1081, nixdezren39/nix#503 -> code#1086, nixdezren39/nix#504 -> code#1085, nixdezren39/nix#505 -> code#1091 (egress half), nixdezren39/nix#507 -> code#1091 (OCI half). nixdezren39/nix#506 (boats.dev research) is answered: no free tier, 7-day trial then $20/mo prepaid, egress uncharged (recorded in the goal register 2026-10-25).

    Recommendation: close nixdezren39/nix#501-dezren39/darwin-nix#507 as superseded by the code epics above (this epic, nixdezren39/nix#508, can stay as the historical parent or close with them). Left open for Drew's call - linking comments posted on each.


    dezren39 - 2026-10-28T20:30:47Z

    Fleet scope correction (operator, 2026-10-28): this epic and its children (dezren39/darwin-nix#501–dezren39/darwin-nix#507) are the lab cluster program, tracked here since the 2026-10-20 idea-register filing. They are not nix-repo work. A bulk triage conversion on 2026-10-28 swept every open issue in this repo into the repo-health work queue indiscriminately, and fleet lanes worked dezren39/darwin-nix#506/dezren39/darwin-nix#507 and reported them as nix backlog items — that was the error. The five still-queued fleet triage tasks for dezren39/darwin-nix#501–dezren39/darwin-nix#505 are cancelled, the fleet-added escalation on dezren39/darwin-nix#506 is removed, and this batch is out of the repo-health fleet's scope. The items remain tracked here under this epic for the lab cluster goal; nothing about their content or priority within that program changes.

  4. dezren39 commented on Oct 28, 2026

    @dezren39
    MemberAuthor

    Relocation map (2026-10-28): this program's issues were filed into dezren39/nix on 2026-10-20 by mistake - they are developing-today/code items. GitHub transfer requires the same owner for both repos, so they were recreated here with bodies, labels, and all comments carried over verbatim, and the nix originals are closed as moved (pointers left on each).

    Sibling references in the bodies above were rewritten to the new numbers; references inside carried-over comments keep their original dezren39/nix#NNN form, since those comments are the historical record.

  5. 1 remaining item

  6. added
    queue/queuedHas a queued task in the Supabase agent queue
    task/triageQueue packet kind: verify, reproduce, and route this item
    and removed
    meta/epicEpic / bundle of related work
    on Nov 1, 2026
  7. dezren39 commented on Nov 3, 2026

    @dezren39
    MemberAuthor

    agent-note:v1
    state: triaged (coverage pass)
    Coverage pass 2026-11-03: reviewed in the fleet-wide per-issue pass (drift / overlap / already-handled / stale / blockers / ordering). Verdict: still live; queued in repo-health-code-pilot as triage at priority 40 (priority/normal). If this is already handled at current main, the triage closes it with evidence; if it needs splitting, the triage files the split.
    Found via: coverage pass 2026-11-03

  8. added
    work/assignedQueue worker lifecycle state
    queue/claimedQueue worker lifecycle state
    and removed
    queue/queuedHas a queued task in the Supabase agent queue
    on Nov 3, 2026
  9. dezren39 commented on Nov 3, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · done

    Triage verdict (fresh gh check, 2026-11-03): still live — not handled, not superseded, no code fix path at current main.

    This is a program epic for physical basement infrastructure (Talos/Cozystack cluster), not a repo change: there is nothing in this repository's main that implements or closes it, and its acceptance criteria are hardware/program outcomes. The fix path is the child-issue sequence, whose current states are:

    Ordering recorded: issue #1810 + issue #1811 first → issue #1812 with issue #1813's storage design → Cozystack + day-one services on proven nodes → issue #1814 before anything user-facing.

    Blockers that keep the epic from proceeding as code work: (1) the gating work is physical — basement hardware inventory/stats (issue #1810) and power capacity for the first 3–5 nodes; (2) open Drew questions already recorded in the epic body (which app FluxCD runs first, exact NIC/switch gear, boats.dev context on issue #1815). No new follow-up packet is enqueued here: every live child already carries its own queued task, and the epic's next action is those children's triage/execution, in the order above.

    Task 7733 completes as triaged; this epic's queue labels are cleaned to match (no in-flight labels remain).

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

Metadata

Metadata

Assignees

Labels

effort/lLarge: multi-day or open-ended; expect staged check-inskind/infrastructureInfrastructure / host-portability workmeta/enrichedIntake review done: acceptance criteria, links, and normalized labels addedpriority/normalOrdinary priority (the default)source/humanFiled directly by a humantask/triageQueue packet kind: verify, reproduce, and route this item

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions