Skip to content

[#13111] fix(test): Pull the MinIO test image from quay.io - #13112

Merged
yuqi1129 merged 1 commit into
apache:mainfrom
nevzheng:fix/minio-quay-image
Sep 14, 2026
Merged

yuqi1129 merged 1 commit into
apache:mainfrom
nevzheng:fix/minio-quay-image

Conversation

@nevzheng

Copy link
Copy Markdown
Collaborator

What changes were proposed in this pull request?

Point MinIOContainer.DEFAULT_IMAGE at quay.io/minio/minio:RELEASE.2025-09-07T16-13-09Z. It's the same MinIO release, pulled from MinIO's quay.io organization instead of Docker Hub.

Why are the changes needed?

Docker Hub removed the minio/minio repository, so every integration test that starts MinIOContainer fails with pull access denied. That includes FilesetS3TokenConnectionIT in Backend Integration Test and IcebergRESTMinIOTokenAuthorizationIT. This is a temporary fix, the same one apache/iceberg#18071 and apache/doris#67897 merged. Replacing MinIO is tracked in the discussion on #13111.

Fix: #13111

Does this PR introduce any user-facing change?

No. Test infrastructure only.

How was this patch tested?

  • docker pull minio/minio:RELEASE.2025-09-07T16-13-09Z fails with pull access denied; docker pull quay.io/minio/minio:RELEASE.2025-09-07T16-13-09Z succeeds.
  • ./gradlew :integration-test-common:spotlessCheck :integration-test-common:compileTestJava passes.
  • CI on this PR runs FilesetS3TokenConnectionIT.

@github-actions

Copy link
Copy Markdown

Code Coverage Report

Overall Project 69.91% 🟢
Files changed No Java source files changed -

Module Coverage
aliyun 19.74% 🔴
api 51.59% 🟢
authorization-common 85.96% 🟢
authorization-ranger 4.38% 🔴
aws 53.54% 🟢
azure 32.1% 🔴
catalog-common 28.4% 🔴
catalog-fileset 82.17% 🟢
catalog-glue 71.52% 🟢
catalog-hive 83.07% 🟢
catalog-jdbc-common 45.05% 🟢
catalog-jdbc-doris 82.69% 🟢
catalog-jdbc-mysql 81.8% 🟢
catalog-jdbc-postgresql 83.89% 🟢
catalog-jdbc-starrocks 79.16% 🟢
catalog-kafka 75.21% 🟢
catalog-lakehouse-generic 61.16% 🟢
catalog-lakehouse-hudi 79.1% 🟢
catalog-lakehouse-iceberg 85.97% 🟢
catalog-lakehouse-paimon 84.29% 🟢
catalog-model 77.99% 🟢
cli 44.62% 🟢
client-java 77.91% 🟢
common 58.09% 🟢
core 84.45% 🟢
filesystem-hadoop3 76.48% 🟢
flink 0.0% 🔴
flink-common 53.63% 🟢
flink-runtime 0.0% 🔴
gcp 32.2% 🔴
hadoop-auth 68.0% 🟢
hadoop-common 17.84% 🔴
hive-metastore-common 54.41% 🟢
iceberg-aliyun-bundle 0.0% 🔴
iceberg-common 66.16% 🟢
iceberg-rest-server 77.02% 🟢
idp-basic 86.77% 🟢
integration-test-common 0.0% 🔴
jobs 62.92% 🟢
lance-common 34.02% 🔴
lance-rest-server 69.12% 🟢
lineage 59.39% 🟢
optimizer 83.24% 🟢
optimizer-api 21.95% 🔴
server 90.1% 🟢
server-common 81.87% 🟢
spark 56.37% 🟢
tencent 81.78% 🟢
trino-connector 59.0% 🟢

@yuqi1129 yuqi1129 added the branch-1.3 Automatically cherry-pick commit to branch-1.3 label Sep 14, 2026
@yuqi1129
yuqi1129 merged commit df60094 into apache:main Sep 14, 2026
38 checks passed
jerryshao pushed a commit that referenced this pull request Sep 15, 2026
…13155)

### What changes were proposed in this pull request?

Replace the shared MinIO fixture with RustFS **1.0.0-rc.6** for fileset
connection testing and Iceberg credential vending. The fixture consumes
one version-and-digest pin from a packaged Docker Compose resource,
waits for signed S3 readiness, and creates buckets through the AWS SDK.

Preserve the Hadoop and Spark/S3FileIO tests, strengthen Spark
write-denial assertions to require `403 AccessDenied`, and add focused
checks of Gravitino's generated inline STS policy: read-only sessions,
object and bucket boundaries, both listing APIs, Hadoop's deliberate
bare-prefix behavior, deletion, and multipart upload.

Image index:
`rustfs/rustfs:1.0.0-rc.6@sha256:97171b3d72cd47dc81000f92ea84de25608bfc35a94c965501afaeb5d99f6035`.
Published `linux/amd64` and `linux/arm64` manifests were verified.

### Why are the changes needed?

Move these tests beyond the MinIO image-availability workaround in
#13112 while retaining their storage-authorization coverage. Related to
#13154; automated image updates and vulnerability reporting are handled
in a separate follow-up PR.

### Does this PR introduce _any_ user-facing change?

No. This changes test infrastructure only.

RustFS is a release candidate. These checks establish
caller-plus-inline-policy enforcement, not AWS named-role trust or
external-ID enforcement. The generated policy does not grant
`AbortMultipartUpload`; the focused multipart test uses root credentials
only to clean up unfinished uploads after failure. Further boundaries
and commands are documented in [the fixture
README](https://github.com/nevzheng/gravitino/blob/ffd21dd5ca8dedcca023731adb2aa5809889b566/integration-test-common/README-rustfs.md).

### How was this patch tested?

On Corretto 17.0.19 and Docker 29.4/OrbStack with the pinned
`linux/arm64` image:

- Image-pin parsing: **2 passed**.
- Signed STS policy and multipart probes: **5 passed**.
- Spark/S3FileIO owner, modify, select-only, and active-role tests: **4
passed**.
- Hadoop fileset catalog connection: **1 passed**.
- Changed-module Spotless checks and `git diff --check` passed.

Native Linux amd64 and deploy-mode execution remain for the existing
backend CI matrix. This Mac's build-output redirection needed its
documented compatibility switch because the existing catalog loader
expects module-local `build/resources/main` paths.

```shell
./gradlew :catalogs:catalog-lakehouse-iceberg:jar \
  :catalogs:catalog-fileset:jar :catalogs:hadoop-common:jar \
  -DcentralBuildOutputs.disabled=true
./gradlew :integration-test-common:test \
  --tests org.apache.gravitino.integration.test.container.TestRustFSContainer \
  :catalogs:catalog-fileset:test \
  --tests org.apache.gravitino.catalog.fileset.integration.test.FilesetS3TokenConnectionIT \
  :iceberg:iceberg-rest-server:test \
  --tests org.apache.gravitino.iceberg.integration.test.IcebergRESTRustFSTokenAuthorizationIT \
  --tests org.apache.gravitino.iceberg.integration.test.RustFSS3TokenIT \
  -PskipDockerTests=false -DcentralBuildOutputs.disabled=true
```
@nevzheng
nevzheng deleted the fix/minio-quay-image branch October 2, 2026 17:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

branch-1.3 Automatically cherry-pick commit to branch-1.3

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug report] MinIO integration tests fail: minio/minio is no longer available on Docker Hub

3 participants