EAI-8205 Give every node a local-path storage path - #307
Merged
Conversation
The local-path provisioner config named the first node of the cluster and gave the paths only to it. A volume for a pod that the scheduler puts on a join node then stays Pending, and the provisioner reports "config doesn't contain node <name>". ClusterForge stops at the OpenBao volume. The config manifest already defaults to DEFAULT_PATH_FOR_NON_LISTED_NODES, which applies the paths to every node, and a node that joins later needs no change. Bloom gives each node the same /mnt/diskN paths from its CLUSTER_DISKS, so one path list fits the whole cluster.
This was referenced Aug 20, 2026
lauri-amd
approved these changes
Aug 21, 2026
lauri-amd
left a comment
Contributor
There was a problem hiding this comment.
There's an assumption that the all the nodes have the same amount of disks available at the same paths?
If the initial has 2 disks the CM is going to be /mnt/disk0, /mnt/disk1 regardless of how many the other nodes have. The other one might have just single disk at /mnt/disk0 .
I think this is still a better than the current state, ✅
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Related:
Bloom wrote the local-path provisioner config with a
nodePathMapthat namesthe first node of the cluster:
{"nodePathMap":[{"node":"ubuntu24-1","paths":["/mnt/disk0"]}]}A node that joins later got no path. When the scheduler put a pod with a volume
on a join node, the provisioner refused it:
The volume stayed
Pending, and the pod with it. On a two-node cluster thisstopped the cluster-forge deployment at the OpenBao volume, after every Bloom
task passed.
The config manifest already defaults to
DEFAULT_PATH_FOR_NON_LISTED_NODES,which applies the paths to every node. The task that read the first node name
overrode that default, so this change removes the task and the variable. A node
that joins later needs no change now.
Bloom gives each node the same
/mnt/diskNpaths from itsCLUSTER_DISKS, soone path list fits the whole cluster.
Test
Found and fixed while testing #306 on two two-node clusters, one Ubuntu 24.04
and one Ubuntu 26.04. Both showed the fault, so it is not specific to an Ubuntu
release.
After the change, on both clusters:
{"nodePathMap":[{"node":"DEFAULT_PATH_FOR_NON_LISTED_NODES","paths":["/mnt/disk0"]}]}.Volume pvc-... has been created on ubuntu24-2:/mnt/disk0/....Jira: https://amd.atlassian.net/browse/EAI-8205