Repository navigation
Description
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
developing-today commentedon Oct 27, 2026
CODE-229
dezren39 commentedon Oct 27, 2026
Epic map — basement cluster program
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.docs(basement-cluster): link filed epic issues in roadmap
dezren39 commentedon Nov 3, 2026
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
dezren39 commentedon Nov 3, 2026
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 servicesis in the roadmap's Later / proposed bucket, behind every bucket before it:plannedplannedproposedThe 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
subIssuesis empty and noepic(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.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/blockedwith 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.