Skip to content

feat: allow creation of multiple pools and add rustfs cli - #57

Open
Daholli wants to merge 5 commits into
rustfs:mainfrom
Daholli:feat/storage-pool-expansion
Open

feat: allow creation of multiple pools and add rustfs cli#57
Daholli wants to merge 5 commits into
rustfs:mainfrom
Daholli:feat/storage-pool-expansion

Conversation

@Daholli

@Daholli Daholli commented Aug 15, 2026

Copy link
Copy Markdown
Contributor

This is the result of me trying to set up pool migration and realizing this is not working right now.

As before documentation was written by claude, code was mostly written by myself, except the tests.
I have reviewed everything and I am also using this right now and it seems to work how I expect it to work

If there are any questions or suggestions feel free to reach out

(also the bump to the rc broke that distributed code I wrote before which is why I had to have a second look)

Since there currently is no package for the cli, this commit introduces it the same way the
other package is introduced here
RustFS 1.0.0-rc.1 only accepts it in orchestrated mode so the version bump broke this package
If you run this in a Orchestrated POD you will have to set it manually
Every RustFS deployment is a pool list already, both volumes and distributed did not allow
expression of multiple pools, since it always rendered into a single pool

This commit consolidates both pools and distributed into one option

Rendering follows what the server accepts: plain arguments collapse into a
single pool, so a lone pool is listed drive by drive and its names take any
shape. Past one pool every argument must carry an ellipsis, mixing the
forms is rejected with "all args must have ellipses for pool expansion".
Each pool becomes and exporession, needing a common prefix and a continous numeric range

IPv6 literals are bracketed so their colons do not run into the port separator.

volumes option migrates with a warning, while distributed is removed outright, since it
only ever shipped alongside rc.1, which refused the RUSTFS_LOCAL_ENDPOINT_HOST

This also adds the erasure coding knobs that previously had to be set via ENV manually

Since there is text parsing involved, there is a new test that covers that
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.

1 participant