No description
  • Go 99.5%
  • Makefile 0.5%
Find a file
zemdregon 50c3b30150
Some checks are pending
CI / lint (push) Waiting to run
CI / test (push) Waiting to run
CI / build (push) Waiting to run
feat: fold local module work
2026-08-17 09:35:23 -05:00
.github/workflows ci: add self-hosted workflow without -race 2026-08-10 11:34:55 -05:00
cmd/module feat: Ceph/Rook RGW storage provider scaffold (v0.1.0) 2026-08-10 06:12:20 -05:00
deploy feat: fold local module work 2026-08-17 09:35:23 -05:00
internal feat: fold local module work 2026-08-17 09:35:23 -05:00
.gitignore feat: Ceph/Rook RGW storage provider scaffold (v0.1.0) 2026-08-10 06:12:20 -05:00
CHANGELOG.md feat: fold local module work 2026-08-17 09:35:23 -05:00
COMPATIBILITY.md feat: Ceph/Rook RGW storage provider scaffold (v0.1.0) 2026-08-10 06:12:20 -05:00
go.mod feat: Ceph/Rook RGW storage provider scaffold (v0.1.0) 2026-08-10 06:12:20 -05:00
go.sum feat: Ceph/Rook RGW storage provider scaffold (v0.1.0) 2026-08-10 06:12:20 -05:00
LICENSE feat: Ceph/Rook RGW storage provider scaffold (v0.1.0) 2026-08-10 06:12:20 -05:00
Makefile feat: fold local module work 2026-08-17 09:35:23 -05:00
muxcore.json feat: Ceph/Rook RGW storage provider scaffold (v0.1.0) 2026-08-10 06:12:20 -05:00
README.md feat: fold local module work 2026-08-17 09:35:23 -05:00

storage-ceph

Ceph Object Gateway (RGW) storage provider for MuxCore — S3-compatible, CGO-free.

Laptop path: MinIO as RGW stand-in

On a laptop you do not need a Ceph cluster. Point this module at local MinIO the same way you would at Ceph RGW (path-style S3). That is the supported demo / CI path.

# terminal A — MinIO (RGW stand-in)
docker run --rm -p 9000:9000 -p 9001:9001 \
  -e MINIO_ROOT_USER=minioadmin -e MINIO_ROOT_PASSWORD=minioadmin \
  minio/minio server /data --console-address :9001

# terminal B — module (same knobs as production RGW)
export CEPH_RGW_ENDPOINT=127.0.0.1:9000
export CEPH_BUCKET=muxcore
export CEPH_ACCESS_KEY=minioadmin
export CEPH_SECRET_KEY=minioadmin
export CEPH_PATH_STYLE=true
export CEPH_USE_SSL=false
export MUXCORE_GRPC_ADDR=127.0.0.1:9090
export MUXCORE_INSECURE_DISABLE_TLS=true
go run ./cmd/module

Or use the checked-in compose fixture:

docker compose -f deploy/docker-compose.yml up -d
# CEPH_RGW_ENDPOINT=127.0.0.1:9000 …

Listens gRPC :9680, HTTP health :9681.

Why keep this module vs storage-s3?

Both speak S3. Prefer storage-s3 for generic MinIO/AWS. Keep storage-ceph when you want Ceph/Rook-oriented settings (monitors, pool, user, keyring) in admin settings for a future native path, while still using MinIO or real RGW today. Do not archive this repo yet — it is not redundant with storage-s3 for operators targeting Ceph.

Deferred: native RADOS / CephFS

Path Status
RGW via S3 API (minio-go) Supported — MinIO locally, Ceph RGW in prod
Native librados / CephFS Deferred — needs CGO; not in laptop/CI gates
Rook operator wiring Deferred — settings knobs reserved only

CEPH_MONITORS / CEPH_POOL / CEPH_USER / CEPH_KEYRING are accepted and exposed in SettingsProvider for forward compatibility; they are not used by the S3/RGW client in v0.1.x.

Settings

Group Keys
Ceph (deferred native) monitors, pool, user, keyring
RGW / MinIO rgw_endpoint, bucket, access_key, secret_key, prefix, use_ssl, path_style

Tests

make test
  • Default: gofakes3 in-memory S3 API (no Docker, no Ceph).
  • Optional: TestMinIO_PutGetListDelete against a real MinIO container when Docker is available; skips otherwise.

go test never requires a Ceph cluster or cloud credentials.