Skip to content

epic(cluster): TALM + Talos bootstrap #1086

Open

Description

@dezren39

Talm + talos bootstrap

Purpose

Prove the declarative bootstrap end-to-end: bare machine to Talos node from config alone.

Scope

TALM (cozystack/talm) flow: init, per-node config harvest, apply, on the first 3-5 machines. Answer Drew's open design question in writing: how heterogeneous per-machine drives are declared in Talos/TALM config. Pin versions (research baseline 2026-10-03: talm v0.35.0, Talos v1.14.1 - recheck at build time). Success includes a teardown-and-rebuild-from-config drill on one node.

Execution mode

Hybrid: all config and tooling work is online; first boot, console checks, and the rebuild drill touch real machines.

Dependencies

Depends on epics 1, 3, 4, 5. Gates epic 7.

Acceptance

First nodes bootstrapped from committed config; the heterogeneous-drive question documented with the working flow; one node rebuilt from config alone as proof.

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. developing-today commented on Oct 27, 2026

    @developing-today
    Contributor
  2. added
    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/hybridOnline work plus a physical step (power, cabling, KVM access to a real device)
    on Oct 27, 2026
  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: #1086 — TALM + Talos bootstrap
    Dependencies: Blocked by #1080, #1083, #1084, #1085; gates #1087

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

  4. dezren39 commented on Oct 27, 2026

    @dezren39
    MemberAuthor

    Predecessor: this epic supersedes dezren39/darwin-nix#503 (filed 2026-10-20 in the nix repo during the program's first filing pass). A superseded-pointer comment is on that issue; work happens here.

  5. 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
  6. 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 30 (priority/none). 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

  7. dezren39 commented on Nov 3, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · triaged (epic live; all execution gated on the hardware epics, one written deliverable is not)

    • Agent: queue worker (repo-worker-code), OpenChamber scheduled lane ec118cad
    • Session / ID: queue task 7648
    • Fresh state at origin/main: epic(cluster): TALM + Talos bootstrap #1086 OPEN, no sub-issues (0/0), roadmap row planning/roadmaps/basement-cluster.md lists it as planned under "Next".

    Dependencies, named and all still open: epic 1 #1080 (hardware inventory), epic 3 #1083 (power & space), epic 4 #1085 (storage assembly), epic 5 #1087 (Cozystack platform). All four are OPEN and hardware-bound, so nothing in the bootstrap flow can be proven yet — no first node exists to boot.

    Work that is safely doable now (online, no hardware): the issue's own design question — how heterogeneous per-machine drives are declared in Talos/TALM config — can be answered in writing against the pinned baseline (talm v0.35.0 / Talos v1.14.1, to be rechecked at build time). That is a document, not an implementation, and it is the one acceptance item that does not need a machine.

    Verdict: keep open as the epic tracker. When scheduled: write the heterogeneous-drive answer first (now), then run init → per-node config harvest → apply on the first 3–5 machines and the teardown-and-rebuild drill once #1080/#1083/#1085 land. Version pins get rechecked at build time. No children filed and no fix packet — a bootstrap task cannot run ahead of its hardware.

  8. removed
    task/triageQueue packet kind: verify, reproduce, and route this item
    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:v1
    state: cross-link
    from: issue #1812 triage (queue task 7746)

    #1812 (TALM bootstrap: declarative per-node disk config for non-identical drives) is the concrete child for this epic's "answer Drew's open design question in writing" acceptance item. GitHub refused the sub-issue link ("sub issue may only have one parent" — #1812 likely still carries a parent from its origin in dezren39/nix), so this comment is the linkage.

    Triage verdict on #1812: still live, answerable offline. The mechanism is TALM node files: nodes/<node>.yaml body below the modeline is applied as a strategic merge patch over the rendered template, so machine.install.diskSelector (serial/wwid, never size/model for the boot disk) and UserVolumeConfig CEL selectors with !system_disk are the per-node declarative hook. Boot-disk swap is a re-template + reinstall drill, i.e. the same rebuild-from-config proof this epic already requires.

    Follow-up implementation task enqueued: 8148 (small_fix, docs + runbook under infra/cluster/, local container-flow proof). Bare-metal proof stays gated on #1810.

  10. dezren39 commented on Nov 5, 2026

    @dezren39
    MemberAuthor

    Home lab build-out (2026-11-04): Drew's lab story names "setting up TALM, Talos Kubernetes, Cozystack" as a build-out step. This epic is the existing execution home for the TALM + Talos half (Cozystack: #1087), so no new ticket was filed — this issue serves as the execution ticket for the tracked goal "Stand up lab cluster (talm, talos, cozystack, postgres, rustfs)" (goal_ba17a5777c21; workspace: ~/workspace/goals/stand-up-lab-cluster-talm-talos-cozystack-postgres-rustfs/).

    Sequencing (parent: #6066): physical plant + network first — racking, the Dell switches, edge routing, mesh Wi-Fi — then the cluster interconnect bring-up (#6077: the dozen cluster machines + 2–3 mini PCs, full-mesh reachability), which this ticket depends on; cluster setup after that. Program epic: #1817.

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

Metadata

Metadata

Assignees

Labels

area/k8sKubernetes manifests and workloadseffort/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/hybridOnline work plus a physical step (power, cabling, KVM access to a real device)source/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