Document automatic volume placement (pin, load-aware, Pod co-location) - #178
Conversation
|
🤖: Deployment available as https://docstest.simplyblock.io/docs/volume-placement-draft |
|
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"? |
|
need to do some refining, moving it to draft state for now. |
|
🤖: Deployment available as https://docstest.simplyblock.io/docs/volume-placement-draft |
1 similar comment
|
🤖: Deployment available as https://docstest.simplyblock.io/docs/volume-placement-draft |
|
🤖: Deployment available as https://docstest.simplyblock.io/docs/volume-placement-draft |
3952245 to
534aae7
Compare
|
🤖: Deployment available as https://docstest.simplyblock.io/docs/volume-placement-draft |
534aae7 to
358887e
Compare
|
🤖: Deployment available as https://docstest.simplyblock.io/docs/volume-placement-draft |
358887e to
62e7aeb
Compare
|
🤖: Deployment available as https://docstest.simplyblock.io/docs/volume-placement-draft |
1 similar comment
|
🤖: 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.
62e7aeb to
486e4c9
Compare
|
🤖: Deployment available as https://docstest.simplyblock.io/docs-volume-placement-draft |
…cated annotations mentioning
|
🤖: Deployment available as https://docstest.simplyblock.io/docs-volume-placement-draft |
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 insimplyblock-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.goandcsi-driver/pkg/spdk/controllerserver.go:simplyblock.io/selected-storage-nodeis the canonical pin annotation (already documented for migration; this page notes it also works at creation time).host-idand legacysimplybk/host-idare accepted but auto-normalized into it — documented as deprecated.volumeAutoPlacement.latencyBenchmarkEnabled(not.enabled, which only controls the separate continuous rebalancer) — it stamps a non-pinningsimplyblock.io/placement-hintannotation. Documented present-tense, no "Planned" language.simplyblock.io/pod-affinity) has noEnableNodeAffinityprecondition 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 thenode-affinity.mdcross-link.simplyblock.io/disable-smart-placementis implemented and documented as-is.Also corrects the
volume-migration.mdAuto-Rebalancing cross-reference to namelatencyBenchmarkEnabledspecifically, since that's the flag that actually gates creation-time placement.Test plan
mkdocs buildlocally to confirm the new page renders and nav weight (40050) doesn't collideatlas-lib/kube/names.goandcontrollerserver.goonce more before merge, since this is user-facing and precision matters🤖 Generated with Claude Code