Skip to content

Document automatic volume placement (pin, load-aware, Pod co-location) - #178

Merged
noctarius merged 3 commits into
mainfrom
docs/volume-placement-draft
Aug 7, 2026
Merged

Document automatic volume placement (pin, load-aware, Pod co-location)#178
noctarius merged 3 commits into
mainfrom
docs/volume-placement-draft

Conversation

@boddumanohar

@boddumanohar boddumanohar commented Aug 3, 2026

Copy link
Copy Markdown
Member

Summary

Documents docs/usage/simplyblock-csi/volume-placement.md — how Simplyblock picks a new volume's primary storage node. This started from the "Volume Placement at Creation Time" design doc, but the design doc turned out to be stale relative to what's actually shipped in simplyblock-operator, so the content here is rewritten to match the real code, verified by reading (not just grepping) operator/internal/webhook/simplyblock_volume_placement_injector.go and csi-driver/pkg/spdk/controllerserver.go:

  • simplyblock.io/selected-storage-node is the canonical pin annotation (already documented for migration; this page notes it also works at creation time). host-id and legacy simplybk/host-id are accepted but auto-normalized into it — documented as deprecated.
  • Load-aware placement for new volumes is real and shipped, gated by volumeAutoPlacement.latencyBenchmarkEnabled (not .enabled, which only controls the separate continuous rebalancer) — it stamps a non-pinning simplyblock.io/placement-hint annotation. Documented present-tense, no "Planned" language.
  • Pod co-location (simplyblock.io/pod-affinity) has no EnableNodeAffinity precondition in the actual code — that cluster flag only affects SPDK's erasure-coding data plane and is unrelated to this CSI-level mechanism. Removed that incorrect precondition, including from the node-affinity.md cross-link.
  • simplyblock.io/disable-smart-placement is implemented and documented as-is.

Also corrects the volume-migration.md Auto-Rebalancing cross-reference to name latencyBenchmarkEnabled specifically, since that's the flag that actually gates creation-time placement.

Test plan

  • mkdocs build locally to confirm the new page renders and nav weight (40050) doesn't collide
  • Spot-check the annotation names/precedence against atlas-lib/kube/names.go and controllerserver.go once more before merge, since this is user-facing and precision matters

🤖 Generated with Claude Code

@github-actions

github-actions Bot commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

🤖: Deployment available as https://docstest.simplyblock.io/docs/volume-placement-draft

@noctarius

Copy link
Copy Markdown
Collaborator

Why would we point out tier 1 if nothing is implemented? Same as, why would we make a distinction between "tier 0" and "tier 1"?

@boddumanohar boddumanohar changed the title Draft: document proposed automatic volume placement Document automatic volume placement (pin, load-aware, Pod co-location) Aug 3, 2026
@boddumanohar
boddumanohar marked this pull request as draft August 3, 2026 08:40
@boddumanohar

Copy link
Copy Markdown
Member Author

need to do some refining, moving it to draft state for now.

@github-actions

github-actions Bot commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

🤖: Deployment available as https://docstest.simplyblock.io/docs/volume-placement-draft

1 similar comment
@github-actions

github-actions Bot commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

🤖: Deployment available as https://docstest.simplyblock.io/docs/volume-placement-draft

@boddumanohar
boddumanohar marked this pull request as ready for review August 3, 2026 12:36
@github-actions

github-actions Bot commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

🤖: Deployment available as https://docstest.simplyblock.io/docs/volume-placement-draft

@boddumanohar
boddumanohar force-pushed the docs/volume-placement-draft branch from 3952245 to 534aae7 Compare August 7, 2026 08:36
@github-actions

github-actions Bot commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

🤖: Deployment available as https://docstest.simplyblock.io/docs/volume-placement-draft

@boddumanohar
boddumanohar force-pushed the docs/volume-placement-draft branch from 534aae7 to 358887e Compare August 7, 2026 08:48
@github-actions

github-actions Bot commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

🤖: Deployment available as https://docstest.simplyblock.io/docs/volume-placement-draft

@boddumanohar
boddumanohar force-pushed the docs/volume-placement-draft branch from 358887e to 62e7aeb Compare August 7, 2026 09:00
@github-actions

github-actions Bot commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

🤖: Deployment available as https://docstest.simplyblock.io/docs/volume-placement-draft

1 similar comment
@github-actions

github-actions Bot commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

🤖: Deployment available as https://docstest.simplyblock.io/docs/volume-placement-draft

…cation)

Add the reference page for how simplyblock resolves a new volume's
primary storage node: an explicit pin via the selected-storage-node
annotation, Pod co-location via pod-affinity, and load-aware placement,
in that order, with disable-smart-placement to opt a PVC out of the
load-aware tier. Cross-link it from volume-migration.md and
node-affinity.md, and apply the house style and quality-gate fixes
(link targets, external-link attributes, em dash and semicolon
removal) introduced on main.
@noctarius
noctarius force-pushed the docs/volume-placement-draft branch from 62e7aeb to 486e4c9 Compare August 7, 2026 11:36
@github-actions

github-actions Bot commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

🤖: Deployment available as https://docstest.simplyblock.io/docs-volume-placement-draft

@github-actions

github-actions Bot commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

🤖: Deployment available as https://docstest.simplyblock.io/docs-volume-placement-draft

@noctarius
noctarius merged commit b5c84d3 into main Aug 7, 2026
4 checks passed
@noctarius
noctarius deleted the docs/volume-placement-draft branch August 7, 2026 12:15
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