Skip to content

epic(cluster): platform services #1088

Open

Description

@dezren39

Platform services

Purpose

The services the cluster exists to run, as declarative platform apps.

Scope

Postgres via Cozystack managed app (CloudNativePG); object storage decision made and built: RustFS as an additional workload vs Cozystack's bundled SeaweedFS buckets (the open question from the research brief - decide on evidence, record the decision); NATS; FluxCD; Cloudflare tunnel out; Tailscale. DRBD+LINSTOR replication as designed in epic 5, including the quorum/witness question (spare PC or Pi as tie-breaker).

Execution mode

Online.

Dependencies

Depends on epic 7 (and epic 5 for storage-backed services).

Acceptance

Each service deployed from config with a health check; the RustFS-vs-SeaweedFS decision recorded with reasoning; replication behaviour tested, including a node-loss case.

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/onlineFully doable remotely: design, config, code, cloud
    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: #1088 — Platform services
    Dependencies: Blocked by #1087 (+ #1085 storage); gates #1090, #1092

    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. 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

  6. added
    status/blockedQueue or user escalation state
    queue/blockedQueue or user escalation state
    and removed
    queue/queuedHas a queued task in the Supabase agent queue
    on Nov 3, 2026
  7. dezren39 commented on Nov 3, 2026

    @dezren39
    MemberAuthor

    Queue note (triaged, task 7638): verdict — still live as an epic, and not startable. It is blocked by the entire front half of the basement-cluster program. No sub-issues exist yet, so there is nothing to claim here.

    Where it sits (from planning/roadmaps/basement-cluster.md)

    Platform services is in the roadmap's Later / proposed bucket, behind every bucket before it:

    Stage Epics State
    Now #1080 hardware inventory · #1081 firmware/BIOS/BMC · #1083 power & space all OPEN, planned
    Next #1084 network fabric · #1085 storage assembly · #1086 TALM/Talos bootstrap · #1091 cloud extension all OPEN, planned
    Later #1087 Cozystack platform → #1088 platform services (this issue) · #1090 observability · #1092 ID app all OPEN, proposed

    The issue body's "depends on epic 7 (and epic 5 for storage-backed services)" maps by content to the storage epic (#1085) and to the bootstrap/Cozystack pair; in every reading the immediate gate is #1087 Cozystack, which itself needs #1080–#1086 to land first. Nothing in this epic can be deployed before there is a cluster to deploy onto.

    Two concrete gaps this triage found

    1. No sub-issues exist. The epic's Structure section says "Detailed task issues are filed as sub-issues of this epic", but subIssues is empty and no epic(cluster) child issues exist. The work below is unscoped until epic(cluster): Cozystack platform #1087 is near — filing children now would produce specs against a cluster shape that epic(cluster): network fabric #1084/epic(cluster): storage assembly & design validation #1085/epic(cluster): TALM + Talos bootstrap #1086 have not settled.
    2. The RustFS-vs-SeaweedFS decision is unrecorded. It is listed as a scope item and an acceptance criterion ("decision recorded with reasoning") but has no decision record anywhere in the repo or issues. That decision is genuinely blocked on epic(cluster): storage assembly & design validation #1085's storage validation, so it cannot be settled here either.

    Verdict

    Keep open as an epic — it is valid roadmap content, not stale. It is not a queue-workable item, and it should stop consuming triage claims: labels now say status/blocked + queue/blocked with the blocker chain above, matching how #1087-#1092 are tracked.

    Unblock condition: #1087 Cozystack deployed on a working Talos cluster (#1086) over validated storage (#1085) and fabric (#1084). At that point this epic's first real step is Postgres via CloudNativePG, followed by NATS/FluxCD/Cloudflare tunnel/Tailscale, with the RustFS decision recorded as part of it.

  8. dezren39 commented on Nov 8, 2026

    @dezren39
    MemberAuthor

    Partial verification — staying open (2026-11-07 done-task-only audit, tracking: #7016).

    Queue task(s) [7638] were marked done, and some work did land:

    No merged change closes this issue's full scope, so the done status is not treated as completion. Remainder re-queued as triage task 11537.

  9. developing-today commented on Nov 8, 2026

    @developing-today
    Contributor

    🤖 Agent note · triaged (still blocked — verdict of task 7638 re-verified fresh)

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/onlineFully doable remotely: design, config, code, cloudqueue/blockedQueue or user escalation statesource/creatorFiled by the new-issue-creator jobstatus/blockedQueue or user escalation statetask/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