Thanks for the analysis, Yong!

I do not think we have any MinIO-based tests that rely on virtual
host-stype access... I may be mistaken, though... Did you come across any
specific cases like this?

IIRC all MinIO-based examples and tests use path-style access.

Just to confirm, STS (cred. vending) works with RustFS, right?

Thanks,
Dmitri.

On Sat, Jan 24, 2026 at 11:12 PM Yong Zheng <[email protected]> wrote:

> So I spent some time on this today. With path style access, rustfs will
> work 100% with couple lines changes. However, when dealing with virtual
> host style access, it is not happy with testcontainer due to testcontainer
> map a random port to host and rustfs is very restrict on server domains
> (could be bug if not intensional). Take an example, when I have rustfs
> mapped to port 9000 and testcontainer maps it to 62226 (random selected
> port), the health check happens on localhost:62226 which is not something
> we can set ahead of time for RUSTFS_SERVER_DOMAINS. Same observation had
> being reported in https://github.com/rustfs/rustfs/issues/308 where
> others confirm:
> ```
> ...I tried the domain name method again. When configuring
> RUSTFS_SERVER_DOMAINS, if the domain name port is not 443, you need to fill
> in the port as well, for example, test.rustfs.cn:9000.
> ```
> But with testcontainer, this will map to some random port on host as
> describe above then throw InvalidBucketName error.
>
> Another issue is https://github.com/rustfs/rustfs/issues/1593 where
> rustfs thinks that mapping mentioned above is a bucket name.
>
> That being said, if we want to change our user facing getting-started
> example from minio to rustfs, it will work 100%. However, we can't change
> our integration tests from minio to rustfs if we need to continue cover the
> tests on virtual host style access.
>
> Thanks,
> Yong Zheng
>
> On 2026/01/19 19:36:48 Yufei Gu wrote:
> > I think it's a good plan to distinguish between getting-started examples
> > and integration tests, esp. if RustFS is much faster. Thanks Dmitri.
> > Will current integration tests fail if we switch to RustFS from minio?
> >
> https://github.com/apache/polaris/blob/5e5779f115472fa8614a6820b1e178520d927012/integration-tests/build.gradle.kts#L70-L70
> >
> > Yufei
> >
> >
> > On Mon, Jan 19, 2026 at 11:23 AM Dmitri Bourlatchkov <[email protected]>
> > wrote:
> >
> > > Hi Yufei,
> > >
> > > From my POV we need some storage for "getting started" examples and
> some
> > > storage for CI.
> > >
> > > They may be the same or different.
> > >
> > > I think Apache Ozone is preferable for examples (when it supports STS)
> > > because it's also inside the ASF and examples do not have to be as
> lean as
> > > containers used in CI.
> > >
> > > IMHO, RustFS looks promising for CI due to simplicity / performance...
> but
> > > it remains to be tested :)
> > >
> > > As long as the RustFS project remains active and aligned with S3 API
> > > changes, I think it does not matter so much that it is not an ASF
> project.
> > > It is released under ALv2 [1]
> > >
> > > [1] https://github.com/rustfs/rustfs
> > >
> > > Cheers,
> > > Dmitri.
> > >
> > > On Mon, Jan 19, 2026 at 2:13 PM Yufei Gu <[email protected]> wrote:
> > >
> > > > Given STS is an essential requirement for s3 compatible storage
> > > validation,
> > > > waiting for Ozone is reasonable to me. RustFS is also a good
> candidate if
> > > > it's faster and supports STS. With that, are we trying to test both
> Ozone
> > > > and RustFS as a long term solution?
> > > >
> > > > Yufei
> > > >
> > > >
> > > > On Mon, Jan 19, 2026 at 8:14 AM Jean-Baptiste Onofré <
> [email protected]>
> > > > wrote:
> > > >
> > > > > Hi Dmitri,
> > > > >
> > > > > That’s a fair point. Since we are discussing the quickstart guide,
> > > > ensuring
> > > > > a consistent message and a positive user experience is essential.
> > > > >
> > > > > While I don't have a strong preference, I lean toward Apache Ozone
> as
> > > it
> > > > is
> > > > > an ASF project, which would help us avoid a similar situation to
> the
> > > one
> > > > we
> > > > > are currently facing with MinIO.
> > > > >
> > > > > That said, if RustFS is faster to set up and works well with
> minimal
> > > > > effort, I am completely fine with that approach.
> > > > >
> > > > > Thanks!
> > > > >
> > > > > Regards,
> > > > > JB
> > > > >
> > > > > On Mon, Jan 19, 2026 at 3:59 PM Dmitri Bourlatchkov <
> [email protected]>
> > > > > wrote:
> > > > >
> > > > > > Hi All,
> > > > > >
> > > > > > The latest MinIO images work well for Polaris tests and demos.
> > > > > >
> > > > > > It might still be worth proactively trying newer S3
> implementations
> > > > like
> > > > > > RustFS and/or SeaweedFS (although I have not personally tried
> them
> > > out
> > > > > with
> > > > > > Polaris yet).
> > > > > >
> > > > > > Even though we may prefer Ozone as the main storage in examples
> when
> > > it
> > > > > > supports STS, validating other S3 implementations could be
> helpful
> > > for
> > > > > > Polaris end users.
> > > > > >
> > > > > > Also, I expect RustFS to be faster and less cumbersome to set up
> than
> > > > > > Ozone, which could be an advantage for integration tests in CI.
> > > > > >
> > > > > > Cheers,
> > > > > > Dmitri.
> > > > > >
> > > > > > On Mon, Jan 19, 2026 at 6:03 AM Jean-Baptiste Onofré <
> > > [email protected]>
> > > > > > wrote:
> > > > > >
> > > > > > > Hi,
> > > > > > >
> > > > > > > I know the Ozone community is discussing to have STS full
> support
> > > for
> > > > > > 2.2.0
> > > > > > > release.
> > > > > > >
> > > > > > > So, I think it's reasonable to keep minio for now waiting ozone
> > > > 2.2.0.
> > > > > > >
> > > > > > > Thoughts ?
> > > > > > >
> > > > > > > Regards
> > > > > > > JB
> > > > > > >
> > > > > > > On Mon, Jan 19, 2026 at 3:59 AM Yong Zheng <[email protected]>
> > > > wrote:
> > > > > > >
> > > > > > > > Hi Adnan and JB,
> > > > > > > >
> > > > > > > > I took a closer look at Ozone and it doesn't appear STS is
> fully
> > > > > > > supported
> > > > > > > > yet for Ozone:
> > > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> https://github.com/apache/ozone/blob/master/hadoop-hdds/docs/content/design/ozone-sts.md
> > > > > > > .
> > > > > > > > In this case, do we still wan to cut over the getting start
> > > example
> > > > > to
> > > > > > > > Ozone one instead of MinIO?
> > > > > > > >
> > > > > > > > Thanks,
> > > > > > > > Yong Zheng
> > > > > > > >
> > > > > > > > On 2026/01/14 23:32:11 Adnan Hemani via dev wrote:
> > > > > > > > > Hi all,
> > > > > > > > >
> > > > > > > > > I'd hope that we can pivot to Ozone and hide the additional
> > > > > > adaptation
> > > > > > > > > behind our setup scripts.
> > > > > > > > >
> > > > > > > > > It's a shame that my fears came true about relying on a
> > > provider
> > > > > who
> > > > > > is
> > > > > > > > > actively trying to sell the managed version of their
> product
> > > > > shutting
> > > > > > > > down
> > > > > > > > > their OSS functionalities [1]. Any alternatives we
> consider, in
> > > > my
> > > > > > > > opinion,
> > > > > > > > > should take this experience into consideration.
> > > > > > > > >
> > > > > > > > > I'm still not against reverting back to using local FS for
> the
> > > > > > > Quickstart
> > > > > > > > > experience. If all the alternatives only complicate things
> for
> > > > the
> > > > > > end
> > > > > > > > > user, then it will be a poor Quickstart experience - and
> that's
> > > > > much
> > > > > > > > worse
> > > > > > > > > than giving more functionality in Quickstart but users not
> > > > knowing
> > > > > > how
> > > > > > > to
> > > > > > > > > actually use it.
> > > > > > > > >
> > > > > > > > > Best,
> > > > > > > > > Adnan Hemani
> > > > > > > > >
> > > > > > > > > [1] https://github.com/apache/polaris/pull/2976
> > > > > > > > >
> > > > > > > > > On Fri, Jan 9, 2026 at 6:58 AM Jean-Baptiste Onofré <
> > > > > [email protected]
> > > > > > >
> > > > > > > > wrote:
> > > > > > > > >
> > > > > > > > > > Hi
> > > > > > > > > >
> > > > > > > > > > Yes, Ozone supports STS, that's why I mentioned it. It's
> > > > probably
> > > > > > > close
> > > > > > > > > > enough to minIO (even if some "adaptation" might be
> required
> > > > for
> > > > > > > STS).
> > > > > > > > > >
> > > > > > > > > > Just my $0.01
> > > > > > > > > >
> > > > > > > > > > Regards
> > > > > > > > > > JB
> > > > > > > > > >
> > > > > > > > > > On Fri, Jan 9, 2026 at 2:15 AM Yufei Gu <
> > > [email protected]>
> > > > > > > wrote:
> > > > > > > > > >
> > > > > > > > > > > Agreed with Dmitri that STS is essential in this case,
> > > > > otherwise
> > > > > > a
> > > > > > > > local
> > > > > > > > > > > file system will be good enough.
> > > > > > > > > > >
> > > > > > > > > > > AFAIK, Apache Ozone supports STS starting from 2.1.0,
> > > > > > > > > > > https://ozone.apache.org/release/2.1.0/.
> > > > > > > > > > >
> > > > > > > > > > > Yufei
> > > > > > > > > > >
> > > > > > > > > > >
> > > > > > > > > > > On Thu, Jan 8, 2026 at 4:55 PM Dmitri Bourlatchkov <
> > > > > > > [email protected]
> > > > > > > > >
> > > > > > > > > > > wrote:
> > > > > > > > > > >
> > > > > > > > > > > > Hi François,
> > > > > > > > > > > >
> > > > > > > > > > > > I could not find any mention of STS / AssumeRole in
> > > > GarageHQ
> > > > > > docs
> > > > > > > > > > (really
> > > > > > > > > > > > quick looks), so I assume it does not support STS...
> Do
> > > you
> > > > > > know
> > > > > > > > for
> > > > > > > > > > > sure?
> > > > > > > > > > > >
> > > > > > > > > > > > STS is pretty important for ease of use in Polaris
> > > getting
> > > > > > > started
> > > > > > > > > > (i.e.
> > > > > > > > > > > > setup without STS is more involved).
> > > > > > > > > > > >
> > > > > > > > > > > > Cheers,
> > > > > > > > > > > > Dmitri.
> > > > > > > > > > > >
> > > > > > > > > > > > On Thu, Jan 8, 2026 at 3:09 PM Francois Papon <
> > > > > > [email protected]
> > > > > > > >
> > > > > > > > > > wrote:
> > > > > > > > > > > >
> > > > > > > > > > > > > Hi,
> > > > > > > > > > > > >
> > > > > > > > > > > > > About other solutions, I made some test to evaluate
> > > > GaragHQ
> > > > > > as
> > > > > > > an
> > > > > > > > > > > > > alternative to MinIO:
> > > > > > > > > > > > >
> > > > > > > > > > > > > https://garagehq.deuxfleurs.fr/
> > > > > > > > > > > > >
> > > > > > > > > > > > > I don't know if all the required functionnalities
> used
> > > by
> > > > > > > > Polaris are
> > > > > > > > > > > > > provided but for the test/quickstart part may be
> it can
> > > > do
> > > > > > the
> > > > > > > > job.
> > > > > > > > > > > > >
> > > > > > > > > > > > > regards,
> > > > > > > > > > > > >
> > > > > > > > > > > > > François
> > > > > > > > > > > > >
> > > > > > > > > > > > > Le 08/01/2026 à 16:35, Adam Christian a écrit :
> > > > > > > > > > > > > > Thanks, folks! Great points! I do like the idea
> of
> > > > using
> > > > > > > > something
> > > > > > > > > > > > other
> > > > > > > > > > > > > > than MinIO.
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > My only 2 cents: For the quickstart docker
> compose
> > > > file,
> > > > > I
> > > > > > > > believe
> > > > > > > > > > > that
> > > > > > > > > > > > > we
> > > > > > > > > > > > > > should use object storage that can be
> automatically
> > > > > > > configured
> > > > > > > > > > > without
> > > > > > > > > > > > > > having to put in credentials. The goal of the
> > > > quickstart
> > > > > is
> > > > > > > to
> > > > > > > > have
> > > > > > > > > > > > > anyone
> > > > > > > > > > > > > > who has Docker running locally to be able to
> launch a
> > > > > > > > > > non-production
> > > > > > > > > > > > > > version of Polaris through a single command. It's
> > > > > targeted
> > > > > > > for
> > > > > > > > > > users
> > > > > > > > > > > > who
> > > > > > > > > > > > > > are just learning about Polaris. So, in my
> opinion,
> > > > this
> > > > > > > rules
> > > > > > > > out
> > > > > > > > > > > AWS
> > > > > > > > > > > > > S3.
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > As long as we meet that criteria, I do think that
> > > > > changing
> > > > > > > > would be
> > > > > > > > > > > > > > appropriate. Thanks for bringing this up!
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > Go community,
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > Adam
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > On Thu, Jan 8, 2026 at 9:16 AM Dmitri
> Bourlatchkov <
> > > > > > > > > > > > > > [email protected]> wrote:
> > > > > > > > > > > > > >
> > > > > > > > > > > > > >> Hi All,
> > > > > > > > > > > > > >>
> > > > > > > > > > > > > >> Apache Ozone works well, AFAIK [1] but it
> certainly
> > > > > > requires
> > > > > > > > more
> > > > > > > > > > > > setup
> > > > > > > > > > > > > >> work than MinIO.
> > > > > > > > > > > > > >>
> > > > > > > > > > > > > >> WDYT about RustFS? [2]
> > > > > > > > > > > > > >>
> > > > > > > > > > > > > >> [1]
> > > > > > > > > > > > > >>
> > > > > > > > > > > > > >>
> > > > > > > > > > > > >
> > > > > > > > > > > >
> > > > > > > > > > >
> > > > > > > > > >
> > > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> https://polaris.apache.org/in-dev/unreleased/getting-started/creating-a-catalog/s3/catalog-ozone/
> > > > > > > > > > > > > >>
> > > > > > > > > > > > > >> [2] https://github.com/rustfs/rustfs
> > > > > > > > > > > > > >>
> > > > > > > > > > > > > >> Cheers,
> > > > > > > > > > > > > >> Dmitri.
> > > > > > > > > > > > > >>
> > > > > > > > > > > > > >> On Thu, Jan 8, 2026 at 8:46 AM Jean-Baptiste
> Onofré
> > > <
> > > > > > > > > > > [email protected]>
> > > > > > > > > > > > > >> wrote:
> > > > > > > > > > > > > >>
> > > > > > > > > > > > > >>> Hi Yong,
> > > > > > > > > > > > > >>>
> > > > > > > > > > > > > >>> Thanks for bringing this to our attention.
> > > > > > > > > > > > > >>>
> > > > > > > > > > > > > >>> I agree with your assessment regarding the
> recent
> > > > > changes
> > > > > > > to
> > > > > > > > > > MinIO
> > > > > > > > > > > > OSS.
> > > > > > > > > > > > > >> We
> > > > > > > > > > > > > >>> could evaluate Apache Ozone as a potential
> > > > alternative;
> > > > > > > > while STS
> > > > > > > > > > > > might
> > > > > > > > > > > > > >>> require more changes, I believe it’s worth
> > > > > investigating.
> > > > > > > > > > > > > >>>
> > > > > > > > > > > > > >>> In the short term, we could update the
> quickstart
> > > > guide
> > > > > > to
> > > > > > > > use
> > > > > > > > > > AWS
> > > > > > > > > > > S3
> > > > > > > > > > > > > >> while
> > > > > > > > > > > > > >>> we wait to finalize the Ozone integration.
> > > > > > > > > > > > > >>> About Ceph, that's a good idea, assuming we
> have
> > > the
> > > > > same
> > > > > > > > kind of
> > > > > > > > > > > > > >>> layout/experience.
> > > > > > > > > > > > > >>>
> > > > > > > > > > > > > >>> Regards,
> > > > > > > > > > > > > >>> JB
> > > > > > > > > > > > > >>>
> > > > > > > > > > > > > >>> On Thu, Jan 8, 2026 at 7:49 AM Yong Zheng <
> > > > > > > [email protected]
> > > > > > > > >
> > > > > > > > > > > wrote:
> > > > > > > > > > > > > >>>
> > > > > > > > > > > > > >>>> Hello,
> > > > > > > > > > > > > >>>>
> > > > > > > > > > > > > >>>> We have MinIO support as S3 compatible
> storage and
> > > > > this
> > > > > > is
> > > > > > > > great
> > > > > > > > > > > as
> > > > > > > > > > > > it
> > > > > > > > > > > > > >>>> allows users to quickly test out Apache
> Polaris
> > > as a
> > > > > > > > catalog and
> > > > > > > > > > > > write
> > > > > > > > > > > > > >>> to a
> > > > > > > > > > > > > >>>> S3 compatible storage. However, as MinIO is
> now
> > > > under
> > > > > > > > > > maintenance
> > > > > > > > > > > > mode
> > > > > > > > > > > > > >>> only
> > > > > > > > > > > > > >>>> for OSS (
> > > > > > > https://github.com/minio/minio?tab=readme-ov-file),
> > > > > > > > we
> > > > > > > > > > > > won't
> > > > > > > > > > > > > >> be
> > > > > > > > > > > > > >>>> able to get updated images from public image
> > > > registry,
> > > > > > > > should we
> > > > > > > > > > > > > >> consider
> > > > > > > > > > > > > >>>> switch our primary getting-start example to
> > > > non-MinIO
> > > > > > one
> > > > > > > > > > instead
> > > > > > > > > > > > (the
> > > > > > > > > > > > > >>>> current one is MinIO as backend:
> > > > > > > > > > > > > >>>>
> > > > > > > > > > > > > >>
> > > > > > > > > > > > >
> > > > > > > > > > > >
> > > > > > > > > > >
> > > > > > > > > >
> > > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> https://github.com/apache/polaris/blob/main/getting-started/quickstart/docker-compose.yml
> > > > > > > > > > > > > >>> )?
> > > > > > > > > > > > > >>>> Without doing so, users will be likely pulling
> > > down
> > > > > > > outdated
> > > > > > > > > > MinIO
> > > > > > > > > > > > > >> images
> > > > > > > > > > > > > >>>> with critical CVEs couple months later for
> their
> > > > local
> > > > > > > > setup to
> > > > > > > > > > > play
> > > > > > > > > > > > > >>>> around. If using outdated MinIO is a concern
> as
> > > the
> > > > > > > > > > getting-start
> > > > > > > > > > > > > >>> example,
> > > > > > > > > > > > > >>>> maybe we should switch to the Ceph one (
> > > > > > > > > > > > > >>>>
> > > > > > > > > > > > > >>
> > > > > > > > > > > > >
> > > > > > > > > > > >
> > > > > > > > > > >
> > > > > > > > > >
> > > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> https://github.com/apache/polaris/blob/main/getting-started/ceph/docker-compose.yml
> > > > > > > > > > > > > >>> )
> > > > > > > > > > > > > >>>> but updated it to match the same layout?
> > > > > > > > > > > > > >>>>
> > > > > > > > > > > > > >>>> Thanks,
> > > > > > > > > > > > > >>>> Yong Zheng
> > > > > > > > > > > > > >>>>
> > > > > > > > > > > > >
> > > > > > > > > > > >
> > > > > > > > > > >
> > > > > > > > > >
> > > > > > > > >
> > > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
>

Reply via email to