Repository navigation
chore(compose): run RustFS as the object storage of the stacks (#620) - #621
Draft
Olivier SOTIN (T0t1n) wants to merge 3 commits into
Draft
Olivier SOTIN (T0t1n) wants to merge 3 commits into
Olivier SOTIN (T0t1n) wants to merge 3 commits into
Conversation
This was referenced Nov 4, 2026
chore(octi-lab): replace pgsty/silo by RustFS in the lab stack
OpenCTI-Platform/connector-workshop#7
Open
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Proposed changes
docker-compose.yml,docker-compose.opensearch.yml: theminioservice runsrustfs/rustfs:1.0.4instead ofpgsty/silo:latest. Credentials come from the same.envvariables (RUSTFS_ACCESS_KEY: ${MINIO_ROOT_USER},RUSTFS_SECRET_KEY: ${MINIO_ROOT_PASSWORD}). Theserver /datacommand is gone (RustFS serves/databy default). The healthcheck uses the RustFS readiness route/health/readywith curl, since the image has nomc, with a 60 s start period. Logs go to stdout (RUSTFS_OBS_LOG_DIRECTORYempty), otherwise the image writes them to files inside the container.RUSTFS_CHECK_UPDATE=falseturns off the update check RustFS runs at startup (a call toversion.rustfs.com, also attempted on air-gapped installs).docker-compose.dev.yml: same change onopencti-dev-minio, console kept on 9001, and a named volumerustfsdata: the anonymous/datavolume of a previous Silo container belongs to root, RustFS restarts in a loop on it.README.md: short "Object storage" section with the upgrade warning (the first steps of the guide run with the previous compose file, before agit pull), the dev stack note and the link to the OpenCTI breaking changes page..env.sample: comment updated.Unchanged on purpose: service name
minio, volumes3data,MINIO_ROOT_*variables, port 9000,MINIO__*variables of the OpenCTI services (theS3__*names only exist from the OpenCTI release of #19371, and the stack runsopencti/platform:latest), XTM OneS3_*settings.The version is pinned (no
latest): moving data to RustFS is one way, upgrades go through Renovate.No automatic migration: on an existing
s3datavolume, RustFS stops at startup withPermission denieduntil the volume is backed up and given to uid 10001, as described in the guide. This is on purpose, the stack does not run a one-way data move without a backup.Related issues
How to test this PR
Fresh install:
Then start the full stack, upload a file on an entity in OpenCTI and attach a file in XTM One.
Upgrade from Silo: follow the migration guide of OpenCTI-Platform/opencti#19371 (
docs/docs/deployment/breaking-changes/s3-object-storage-rustfs.md, option 2).Checked locally: the three service definitions start healthy on an empty volume, bucket creation, write and read work, logs come out on stdout. The guide commands were run end to end on a project using these service definitions with the OpenSearch file name (Silo data, count before and after the move, rollback), and the in-place move was tested on a single node and on a 3 nodes x 2 drives cluster (objects, versions, metadata, users, policies, service accounts kept).
Checklist
latestimages, andgit pullusers get the change at once)