Skip to content

docs(failure-domains): name domains with labels instead of integer ids - #184

Open
schmidt-scaled wants to merge 1 commit into
mainfrom
fd-labels
Open

docs(failure-domains): name domains with labels instead of integer ids#184
schmidt-scaled wants to merge 1 commit into
mainfrom
fd-labels

Conversation

@schmidt-scaled

Copy link
Copy Markdown
Contributor

Documents the failure-domain / physical labels feature built on simplyblock/sbcli branch feature/fd-labels (commit d9732101).

What changes for the operator

sn add-node --failure-domain takes a labelRACK1, AZ2, HOST1 — instead of a non-negative integer. The integer is still the internal identity (placement, the distrib cluster map and the expansion planner all key off it, and the v2 API keeps its integer failure_domain field, now alongside failure_domain_label), but operators no longer invent or track it.

Pages touched

  • architecture/concepts/failure-domains.md — domains are named rather than numbered; the label→id mapping is described as an internal detail.
  • non-kubernetes/operations/failure-domains.md — examples switched to RACK1/RACK2; two new sections:
    • Label Syntax — a letter followed by up to 31 of [A-Z0-9_-], case-insensitive, stored upper-cased.
    • Labels on Existing Clusters — initialization through cluster update, which names each id in service FD<id> / HOST<id>. Idempotent, so a later rename survives; refuses to take a derived name already owned by a different id.

Compatibility, documented explicitly

An all-digits --failure-domain value is still read as the internal id, so existing scripts, CI bootstraps and the Kubernetes operator keep working unchanged. The node list's Failure Domain column shows the label and falls back to the id for a cluster that has not been initialized.

Notes for review

  • Base is main: this repo has no dev branch (default is main, with releases cut to release/* / R25.*). Happy to retarget.
  • reference/operator/reference.md is generated CRD documentation and is untouched — the Kubernetes failureDomain field lives in the operator repo and would need its own change to accept labels.
  • Ships with the sbcli branch; merge order should follow whenever that lands.

🤖 Generated with Claude Code

Operators now tag storage nodes with a label — RACK1, AZ2, HOST1 —
instead of a bare integer. The integer still exists internally (placement
and the data plane key off it, and the API's failure_domain field keeps
its type), but it is no longer something an operator has to invent or
track.

- Concept page: domains are named, not numbered; the label -> id mapping
  is described as an internal detail.
- Operations page: examples use RACK1/RACK2; new "Label Syntax" section
  (letter, then up to 31 of [A-Z0-9_-], case-insensitive); new "Labels on
  Existing Clusters" section covering initialization via `cluster update`
  (derived FD<id>/HOST<id> placeholders, idempotent, refuses to steal a
  name already used by another id).
- Notes the compatibility rule: an all-digits --failure-domain value is
  still read as the internal id, so existing automation keeps working.
- The node list's Failure Domain column shows the label, falling back to
  the id for clusters not initialized yet.

Documents simplyblock/sbcli feature/fd-labels (d9732101).
@github-actions

Copy link
Copy Markdown
Contributor

🤖: Deployment available as https://docstest.simplyblock.io/fd-labels

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants