Skip to content

Conversation

@sharas2050
Copy link

This PR introduces a complete Docker Compose–based Ceph cluster environment for Polaris integration.
The goal is to make it easy to simplify the developer experience for Polaris contributors and testers who want to:

Experiment with Ceph-based S3 storage locally — including MON, MGR, OSD, RGW
Validate Polaris integration against RGW without a full cluster deployment

  • Added initialization flow for Ceph monitor and manager daemons
  • Added OSD creation
  • Added preconfigured RGW service with S3-compatible endpoint and pre-created user
  • Added Polaris bootstrap and connection to Ceph RGW for object storage testing
  • note: This setup runs without STS for simplicity (manual key/secret configuration)

@snazy
Copy link
Member

snazy commented Nov 10, 2025

Just out of curiosity, @sharas2050 do you know how much (or better: how many containers) would be minimally needed to run Ceph with STS/IAM?

@sharas2050
Copy link
Author

Just out of curiosity, @sharas2050 do you know how much (or better: how many containers) would be minimally needed to run Ceph with STS/IAM?

It is the same number as using it without STS. It is matter of Ceph configuration and bucket management. I wrote a small article earlier this year about that. You can read it here. Even in this example You can combine MON+MGR in a single container.

Copy link
Contributor

@dimas-b dimas-b left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for your contribution, @sharas2050 ! The LGTM overall, just a minor comments about .env.

This guide describes how to spin up a **single-node Ceph cluster** with **RADOS Gateway (RGW)** for S3-compatible storage and configure it for use by **Polaris**.

This example cluster is configured for basic access key authentication only.
It does not include STS (Security Token Service) or temporary credentials.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would you mind adding a getting-started with IAM/STS as a follow-up of this PR?

@sharas2050
Copy link
Author

@snazy I just updated PR with your suggested changes

@snazy
Copy link
Member

snazy commented Nov 11, 2025

@snazy I just updated PR with your suggested changes

Let me try it locally.

Copy link
Contributor

@dimas-b dimas-b left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sadly, mon1 fails in my env. (Linux + Podman)... logs:

+ sudo -u ceph ceph-mon --mkfs -i mon1 --monmap /var/lib/ceph/tmp/monmap --keyring /var/lib/ceph/tmp/ceph.mon.keyring
sudo: PAM account management error: Authentication service cannot retrieve authentication info
sudo: a password is required

@snazy
Copy link
Member

snazy commented Nov 20, 2025

There's a new failure:

$ docker compose up -d mon1 mgr

[+] Running 0/1
 ⠹ Container ceph-mon1-1  Starting                                                                                                                                                                                                                                                                     0.2s 
Error response from daemon: crun: cannot stat `.../polaris/getting-started/ceph/bootstrap-osd`: No such file or directory: OCI runtime attempted to invoke a command that was not found
Error: executing /usr/libexec/docker/cli-plugins/docker-compose up -d mon1 mgr: exit status 1

Could you cross check that all steps work from a clean environment?

@sharas2050
Copy link
Author

There's a new failure:

$ docker compose up -d mon1 mgr

[+] Running 0/1
 ⠹ Container ceph-mon1-1  Starting                                                                                                                                                                                                                                                                     0.2s 
Error response from daemon: crun: cannot stat `.../polaris/getting-started/ceph/bootstrap-osd`: No such file or directory: OCI runtime attempted to invoke a command that was not found
Error: executing /usr/libexec/docker/cli-plugins/docker-compose up -d mon1 mgr: exit status 1

Could you cross check that all steps work from a clean environment?

The issue is that Podman doesn't auto-create the directory on the host like Docker does. Initialized directory in container instead.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants