Tasks #47066

Updated by Ernesto Puerta about 3 years ago

The Ceph Dashboard REST API backend has gathered a significant amount of functionality compared to the original @restful@ module. We would like to phase out the restful module post-pacific, so it should be marked as "deprecated" now, pointing to the Ceph Dashboard REST API (to be renamed "Ceph REST API") as its replacement.

A comparison between the "RESTful module endpoints and capabilities":, and the ones provided by Ceph-Dashboard RESTful API:

|_.RESTful Resource |_.Dashboard API Resource |_.Description |_.Restful Capabilities |_.Dashboard API Capabilities|
| @/config/cluster@ | "@/api/cluster_conf@": | Ceph cluster configuration | READ | CRUD |
| @/config/osd@ | "@/api/osd/flags@": | OSD flags | READ-UPDATE | READ-UPDATE |
| @/crush/rule@ | "@/api/crush_rule@": | CRUSH Rule | READ | CRUD |
| @/mon@ | "@/api/monitor@": | Monitor Config | READ | READ |
| @/osd@ | "@/api/osd@": | OSD management | READ | CRUD |
| @/pool@ | "@/api/pool@": | Pool management | CRUD | CRUD |
| @/server@ | "@/api/host@": | Host-Daemon management | READ | CRUD |
| "@/request@": | Unsupported (see note below) | Pass-through endpoint | | |

Additionally, Ceph-Dashboard supports:
* *RBD management*: incl. namespaces, snapshots, QoS, trash and mirroring.
* *iSCSI*.
* *RGW management*: incl. daemons, users, buckets, quotas, and some S3 advanced operations (MFA deletions, object locks, ...).
* *CephFS management*: incl. clients, quotas, snapshots, tree operations.
* *NFS exports*
* *Orchestrator management*
* *Other Ceph-related features*: Ceph cluster/audit logs, daemon monitoring/perf-counters.
* *Access management*: multi-user, RBAC, SAML2 SSO, security account policies.
* *OpenAPI 3.0 specification*. OpenAPI specification.

Note on @/request@ endpoint: Dashboard doesn't intentionally support a pass-through endpoint as it's considered not "RESTful": by design (it essentially provides an HTTP gateway to the Ceph CLI). Instead, Ceph-Dashboard API provides a more comprehensive coverage of the Ceph command set by means of RESTful Resources, not requiring a regular access to the CLI.