This is an automated email from the ASF dual-hosted git repository.
bamaer pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/hop.git
The following commit(s) were added to refs/heads/main by this push:
new 29252cc100 [CI] replace minio with seaweedFS (#8707)
29252cc100 is described below
commit 29252cc100b2fd7677dcc7ed8bee9fb1d526be90
Author: Hans Van Akelyen <[email protected]>
AuthorDate: Wed Sep 30 14:34:35 2026 +0200
[CI] replace minio with seaweedFS (#8707)
---
.../integration-tests-hop_server.yaml | 29 ++++++++---------
.../integration-tests/integration-tests-minio.yaml | 38 +++++++++++-----------
.../main-0014-test-export-only-vfs-connection.hwf | 8 ++---
.../export-only-storage.json | 4 +--
integration-tests/minio/dev-env-config.json | 4 +--
.../metadata/MinioConnectionDefinition/minio.json | 2 +-
6 files changed, 42 insertions(+), 43 deletions(-)
diff --git a/docker/integration-tests/integration-tests-hop_server.yaml
b/docker/integration-tests/integration-tests-hop_server.yaml
index 3d046a3696..300b004a86 100644
--- a/docker/integration-tests/integration-tests-hop_server.yaml
+++ b/docker/integration-tests/integration-tests-hop_server.yaml
@@ -25,20 +25,20 @@ services:
condition: service_healthy
hop_server_no_cross_site_check:
condition: service_healthy
- minio:
+ seaweedfs:
condition: service_healthy
links:
- hop_server
- hop_server_no_cross_site_check
- - minio
+ - seaweedfs
hop_server:
image: apache/hop:Development
depends_on:
- minio:
+ seaweedfs:
condition: service_healthy
links:
- - minio
+ - seaweedfs
build:
context: ../../.
dockerfile: docker/Dockerfile
@@ -94,19 +94,18 @@ services:
# Storage behind the "export-only-storage" VFS connection of main-0014. That
connection lives in
# the client project's metadata-client-only folder, so it only ever reaches
the server inside the
- # export ZIP - which is what the test is about.
- minio:
- image: quay.io/minio/minio:RELEASE.2025-09-07T16-13-09Z
- hostname: minio
+ # export ZIP - which is what the test is about. SeaweedFS serves the S3 API
on 8333; the admin
+ # identity comes from the AWS_* variables. The connection is still of the
Minio type: that plugin
+ # speaks plain S3 and works against any compatible store.
+ seaweedfs:
+ image: chrislusf/seaweedfs:4.48
+ hostname: seaweedfs
environment:
- MINIO_REGION: "local"
- MINIO_REGION_NAME: "local"
- MINIO_SCHEME: "http"
- MINIO_ROOT_USER: "ApacheHopAccessKey"
- MINIO_ROOT_PASSWORD: "ApacheHopSecretKey"
- command: server /data --console-address ":9001"
+ AWS_ACCESS_KEY_ID: "ApacheHopAccessKey"
+ AWS_SECRET_ACCESS_KEY: "ApacheHopSecretKey"
+ command: server -s3 -dir=/data -volume.max=0 -master.volumeSizeLimitMB=64
healthcheck:
- test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]
+ test: ["CMD", "curl", "-f", "http://localhost:8333/healthz"]
interval: 10s
timeout: 10s
retries: 12
diff --git a/docker/integration-tests/integration-tests-minio.yaml
b/docker/integration-tests/integration-tests-minio.yaml
index 0629b1e80a..f6c53af600 100644
--- a/docker/integration-tests/integration-tests-minio.yaml
+++ b/docker/integration-tests/integration-tests-minio.yaml
@@ -21,26 +21,26 @@ services:
file: integration-tests-base.yaml
service: integration_test
depends_on:
- minio:
+ seaweedfs:
condition: service_healthy
- links:
- - minio
+ links:
+ - seaweedfs
- minio:
- image: quay.io/minio/minio:RELEASE.2025-09-07T16-13-09Z
- ports:
- - "9000:9000"
- - "9001:9001"
+ # S3-compatible object store behind the "minio" VFS connection. SeaweedFS
serves the S3 API on
+ # 8333; the admin identity comes from the AWS_* variables. The connection is
still of the Minio
+ # type: that plugin speaks plain S3 and works against any compatible store.
+ seaweedfs:
+ image: chrislusf/seaweedfs:4.48
+ hostname: seaweedfs
+ ports:
+ - "8333:8333"
environment:
- MINIO_REGION: "local"
- MINIO_REGION_NAME: "local"
- MINIO_SCHEME: "http"
- MINIO_ROOT_USER: "ApacheHopAccessKey"
- MINIO_ROOT_PASSWORD: "ApacheHopSecretKey"
- command: server /data --console-address ":9001"
-
+ AWS_ACCESS_KEY_ID: "ApacheHopAccessKey"
+ AWS_SECRET_ACCESS_KEY: "ApacheHopSecretKey"
+ command: server -s3 -dir=/data -volume.max=0 -master.volumeSizeLimitMB=64
healthcheck:
- test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]
- interval: 30s
- timeout: 20s
- retries: 3
\ No newline at end of file
+ test: ["CMD", "curl", "-f", "http://localhost:8333/healthz"]
+ interval: 10s
+ timeout: 10s
+ retries: 12
+ start_period: 20s
diff --git
a/integration-tests/hop_server/main-0014-test-export-only-vfs-connection.hwf
b/integration-tests/hop_server/main-0014-test-export-only-vfs-connection.hwf
index 74958e08a0..d6072b4c11 100644
--- a/integration-tests/hop_server/main-0014-test-export-only-vfs-connection.hwf
+++ b/integration-tests/hop_server/main-0014-test-export-only-vfs-connection.hwf
@@ -23,14 +23,14 @@ limitations under the License.
<description>Regression test for issue #8106: a named VFS connection carried
by an export must be
usable by the pipeline running on the remote Hop Server.
- The "export-only-storage" Minio connection lives in the client project's
metadata-client-only
- folder. The server registers ${PROJECT_HOME}/metadata as its own metadata
folder, so it never
+ The "export-only-storage" Minio-type connection (backed by SeaweedFS)
lives in the client
+ project's metadata-client-only folder. The server registers
${PROJECT_HOME}/metadata as its own metadata folder, so it never
sees that connection except inside the export ZIP. The inner workflow runs
remotely and writes
a file through it; the check below runs back on the client, where the
connection is known to
resolve, and proves the server really wrote to the object store.
Before the fix the server has no provider for the "export-only-storage"
scheme, so the path is
- treated as a relative local file, nothing reaches Minio and this test
fails.</description>
+ treated as a relative local file, nothing reaches the object store and
this test fails.</description>
<extended_description/>
<workflow_version/>
<created_user>-</created_user>
@@ -60,7 +60,7 @@ limitations under the License.
</action>
<action>
<name>Cleanup marker in object store</name>
- <description>Runs on the client, which can reach the same Minio.
Removing the file first means
+ <description>Runs on the client, which can reach the same object store.
Removing the file first means
the check can only succeed on something the server wrote during this
run, and it keeps the
export from bundling an existing file in place of the connection
reference.</description>
<type>DELETE_FILE</type>
diff --git
a/integration-tests/hop_server/metadata-client-only/MinioConnectionDefinition/export-only-storage.json
b/integration-tests/hop_server/metadata-client-only/MinioConnectionDefinition/export-only-storage.json
index 2dc65d223a..ac3e6ce704 100644
---
a/integration-tests/hop_server/metadata-client-only/MinioConnectionDefinition/export-only-storage.json
+++
b/integration-tests/hop_server/metadata-client-only/MinioConnectionDefinition/export-only-storage.json
@@ -1,12 +1,12 @@
{
- "endPointHostname": "minio",
+ "endPointHostname": "seaweedfs",
"virtualPath": "",
"secretKey": "ApacheHopSecretKey",
"accessKey": "ApacheHopAccessKey",
"partSize": "5242880",
"name": "export-only-storage",
"description": "A named VFS connection that exists ONLY in the client
project's metadata-client-only folder. The Hop Server registers
${PROJECT_HOME}/metadata as its metadata folder, so this connection can only
reach the server inside the export ZIP. Used by main-0014 to prove that VFS
connections carried by an export are usable on the server (issue #8106). Values
are literals on purpose: the test is about the connection reaching the server,
not about variable resolution.",
- "endPointPort": "9000",
+ "endPointPort": "8333",
"endPointSecure": false,
"region": "local"
}
diff --git a/integration-tests/minio/dev-env-config.json
b/integration-tests/minio/dev-env-config.json
index b7813171e7..6b4bf8dd32 100644
--- a/integration-tests/minio/dev-env-config.json
+++ b/integration-tests/minio/dev-env-config.json
@@ -1,11 +1,11 @@
{
"variables" : [ {
"name" : "MINIO_ENDPOINT_HOSTNAME",
- "value" : "minio",
+ "value" : "seaweedfs",
"description" : "The endpoint hostname"
}, {
"name" : "MINIO_ENDPOINT_PORT",
- "value" : "9000",
+ "value" : "8333",
"description" : "The endpoint port"
}, {
"name" : "MINIO_ACCESS_KEY",
diff --git
a/integration-tests/minio/metadata/MinioConnectionDefinition/minio.json
b/integration-tests/minio/metadata/MinioConnectionDefinition/minio.json
index d754f17817..db7a3f13c1 100644
--- a/integration-tests/minio/metadata/MinioConnectionDefinition/minio.json
+++ b/integration-tests/minio/metadata/MinioConnectionDefinition/minio.json
@@ -5,7 +5,7 @@
"accessKey": "${MINIO_ACCESS_KEY}",
"partSize": "${MINIO_PART_SIZE}",
"name": "minio",
- "description": "The S3 endpoint on a local Minio container for testing",
+ "description": "The S3 endpoint on a local SeaweedFS container for testing",
"endPointPort": "${MINIO_ENDPOINT_PORT}",
"endPointSecure": false,
"region": "${MINIO_REGION}"