Repository navigation
Home
ceph-testcontainers-go starts disposable Ceph clusters with Testcontainers for Go so that a service that uses Ceph (RADOS, RBD, CephFS or RGW/S3) can repeat its integration tests against a real cluster.
It is a test fixture, not a Ceph implementation. It builds the collaborator state a test needs (pools, images, filesystems, gateways, identities, mirror links) independently of the SUT, reproduces operational conditions such as a lost daemon, a fenced client or a cut replication link, and lets the test check afterwards that the cluster holds what the SUT was supposed to leave. Large scale experiments, performance measurement and tuning are out of scope.
These pages are usage scenarios. They show how the pieces fit together for a kind of test; the exact contract of each function is in its godoc.
Each scenario follows the same shape: the goal of the test, the fixture it builds independently of the system under test (SUT), the hand-off of connection details to the SUT, an optional condition step that reproduces an operational situation, the verification of the collaborator's state after the SUT ran, and cleanup.
Start with Ceph Cluster Basics, then open the page of the Ceph interface your service uses.
| Page | Scenarios |
|---|---|
| Ceph Cluster Basics | Fixtures, identities, topology, pools, networking |
| RBD | Namespaces and identities, client features, lock handover, backup and restore |
| RBD Mirror | Snapshot and journal mirroring, failover, split-brain, receivers, namespaces |
| CephFS | Client mounts, quotas, subvolume principals, snapshots, MDS failover, eviction |
| CephFS Mirror | Directory mirroring between two clusters |
| RGW S3 | S3 clients, users and accounts, lifecycle, notifications, STS, Swift, SSE, quotas, TLS, placement |
| RGW Multisite | Replication, metadata master failover, interrupted links, selective sync |
| Fault and Condition Reproduction | Down OSDs, held recovery, full cluster, scrub errors, fencing, frozen clients |
| Verification and Diagnostics | Post-test verification, failure archives, health and metrics |
- API reference: pkg.go.dev or
go docon each package - Repository: README and guides
- Purpose and scope: API purpose and purpose tags