Arcaflow plugin for ephemeral object store using MinIO
License: Apache License 2.0
Dockerfile 25.43%Python 74.57%
arcaflow-plugin-minio's Introduction
Arcaflow MinIO Plugin
The MinIO plugin creates an ephemeral object store that can be used during the operation of a workflow. A single arca-bucket storage bucket is created, and the plugin returns in its output object the required credentials for accessing the bucket.
Accessing the bucket
In order to access the bucket, the MinIO plugin container will need to be launched with internal port 9000 exposed.
The MinIO object store is S3 compatible, so it is possible to use the S3 libraries, the simpler MinIO libraries (recommended), or any other S3 compatible client methods to access the bucket.
The MinIO server is run as insecure so connections are via HTTP without certificates.
Persistent storage
If you would like for your bucket contents to survive after the workflow execution, you will need to mount a persistent filesystem to the container at /mnt/arca-bucket. You will then be able to run a MinIO server separately using this storage location and re-establish access to the bucket outside of the plugin.
Simple ephemeral object store
Do you just need a quick and simple containerized ephemeral object store? You can easily run the plugin directly with a JSON input object like this:
This will create a MinIO container hosting a mybucket bucket via container port 9000 and accessible via S3 protocols with the user/password combo of myuser/mypassword. You can optionally use the -v parameter of docker run to map a local storage location to the container /mnt/arca-bucket path. Additionally, the MinIO console is made available via container port 9001. The container will exit automatically after the run_duration (in seconds) expires.
Autogenerated Input/Output Documentation by Arcaflow-Docsgen Below
MinIO (minio)
Runs the MinIO server and sets up a bucket
Input
Type:
scope
Root object:
InputParams
Properties
bucket_name (string)
Name:
bucket name
Description:
Name for object bucket
Required:
No
Default (JSON encoded):
"arca-bucket"
Type:
string
minio_password (string)
Name:
MinIO password
Description:
The MinIO server password
Required:
No
Type:
string
minio_user (string)
Name:
MinIO username
Description:
The MinIO server username
Required:
No
Type:
string
run_duration (int)
Name:
run duration
Description:
Time in seconds that the MinIO plugin runs before being forceably stopped
Required:
Yes
Type:
int
ObjectsInputParams (object)
Type:
object
Properties
bucket_name (string)
Name:
bucket name
Description:
Name for object bucket
Required:
No
Default (JSON encoded):
"arca-bucket"
Type:
string
minio_password (string)
Name:
MinIO password
Description:
The MinIO server password
Required:
No
Type:
string
minio_user (string)
Name:
MinIO username
Description:
The MinIO server username
Required:
No
Type:
string
run_duration (int)
Name:
run duration
Description:
Time in seconds that the MinIO plugin runs before being forceably stopped