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.

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