You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iceberg.apache.org by ke...@apache.org on 2026/09/24 19:01:00 UTC

(terraform-provider-iceberg) branch main updated: Replace MinIO with RustFS (#123)

This is an automated email from the ASF dual-hosted git repository.

kevinjqliu pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/terraform-provider-iceberg.git


The following commit(s) were added to refs/heads/main by this push:
     new d5d018e  Replace MinIO with RustFS (#123)
d5d018e is described below

commit d5d018e376bde682ba65082b6a83c00d36c39823
Author: Alex Stephen <13...@users.noreply.github.com>
AuthorDate: Thu Sep 24 12:00:54 2026 -0700

    Replace MinIO with RustFS (#123)
---
 dev/docker-compose.yml | 61 +++++++++++++++++++++++++++++---------------------
 1 file changed, 36 insertions(+), 25 deletions(-)

diff --git a/dev/docker-compose.yml b/dev/docker-compose.yml
index 2d0f06c..205f41b 100644
--- a/dev/docker-compose.yml
+++ b/dev/docker-compose.yml
@@ -13,11 +13,10 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-version: "3"
 services:
   rest:
     image: apache/iceberg-rest-fixture:1.10.1
-    container_name: iceberg-rest
+    container_name: iceberg-terraform-rest
     networks:
       iceberg_net:
     ports:
@@ -28,43 +27,55 @@ services:
       - AWS_REGION=us-east-1
       - CATALOG_WAREHOUSE=s3://warehouse/
       - CATALOG_IO__IMPL=org.apache.iceberg.aws.s3.S3FileIO
-      - CATALOG_S3_ENDPOINT=http://minio:9000
+      - CATALOG_S3_ENDPOINT=http://object-store:9000
+    depends_on:
+      aws-cli:
+        condition: service_completed_successfully
 
-  minio:
-    image: minio/minio
-    container_name: minio
-    environment:
-      - MINIO_ROOT_USER=admin
-      - MINIO_ROOT_PASSWORD=password
-      - MINIO_DOMAIN=minio
+  object-store:
+    image: rustfs/rustfs:1.0.0-rc.5
+    container_name: iceberg-terraform-object-store
     networks:
       iceberg_net:
         aliases:
-          - warehouse.minio
+          - warehouse.object-store
     ports:
       - 9001:9001
       - 9000:9000
-    command: ["server", "/data", "--console-address", ":9001"]
+    environment:
+      - RUSTFS_ACCESS_KEY=admin
+      - RUSTFS_SECRET_KEY=password
+      - RUSTFS_VOLUMES=/data
+      - RUSTFS_ADDRESS=:9000
+      - RUSTFS_CONSOLE_ENABLE=true
+      - RUSTFS_CONSOLE_ADDRESS=:9001
+      # Resolves virtual-hosted-style `warehouse.object-store` to the warehouse
+      # bucket. The port is required until rustfs/rustfs#7051 ships.
+      - RUSTFS_SERVER_DOMAINS=object-store:9000
+    healthcheck:
+      test: ["CMD-SHELL", "curl --fail http://127.0.0.1:9000/health"]
+      interval: 5s
+      timeout: 5s
+      retries: 10
+      start_period: 5s
 
-  mc:
-    depends_on:
-      - minio
-    image: minio/mc
-    container_name: mc
+  aws-cli:
+    image: amazon/aws-cli:2.36.44
+    container_name: iceberg-terraform-aws-cli
     networks:
       iceberg_net:
+    depends_on:
+      object-store:
+        condition: service_healthy
     environment:
       - AWS_ACCESS_KEY_ID=admin
       - AWS_SECRET_ACCESS_KEY=password
       - AWS_REGION=us-east-1
-    entrypoint: >
-      /bin/sh -c "
-      until (/usr/bin/mc alias set minio http://minio:9000 admin password) do echo '...waiting...' && sleep 1; done;
-      /usr/bin/mc rm -r --force minio/warehouse;
-      /usr/bin/mc mb minio/warehouse;
-      /usr/bin/mc policy set public minio/warehouse;
-      tail -f /dev/null
-      "
+      - AWS_ENDPOINT_URL=http://object-store:9000
+    entrypoint: /bin/sh
+    command:
+      - -c
+      - "aws s3 rb s3://warehouse --force 2>/dev/null; aws s3 mb s3://warehouse"
 
 networks:
   iceberg_net: