Rook website screenshot

Rook

Rook is a CNCF graduated cloud-native storage orchestrator for Kubernetes, providing the platform, framework, and support for Ceph distributed storage systems to natively integrate with cloud-native environments. It automates the deployment, configuration, provisioning, scaling, upgrading, and monitoring of storage systems through Kubernetes operators and Custom Resource Definitions (CRDs), with primary support for Ceph block storage, shared filesystems, and S3-compatible object storage.

4 APIs 0 Features
Block StorageCNCFCephCloud NativeFile StorageGraduatedKubernetesObject StorageOrchestrationStorage

APIs

Rook Ceph Custom Resource API

Rook extends Kubernetes through Custom Resource Definitions (CRDs) to declaratively manage Ceph storage clusters. The CRD API includes resources for CephCluster, CephBlockPool, ...

Rook Ceph Object Storage API

Rook provisions Ceph Object Storage gateways (RGW) that expose an S3-compatible and Swift-compatible object storage API. Applications can interact with Ceph Object Storage using...

Rook Ceph Block Storage API

Rook provides Ceph block storage (RBD) through Kubernetes StorageClasses and PersistentVolumeClaims. The CephBlockPool CRD and associated StorageClass allow applications to dyna...

Rook Ceph Shared Filesystem API

Rook manages CephFilesystem resources to provision shared POSIX-compliant file storage backed by CephFS. Multiple pods can simultaneously read and write to shared filesystem vol...

Collections

Pricing Plans

Rook Plans Pricing

2 plans

PLANS

Rate Limits

Rook Rate Limits

2 limits

RATE LIMITS

FinOps

Rook Finops

FINOPS

Semantic Vocabularies

Rook Context

0 classes · 6 properties

JSON-LD

API Governance Rules

Rook API Rules

9 rules · 2 errors 5 warnings 2 info

SPECTRAL

JSON Structure

Rook Ceph Block Pool Structure

0 properties

JSON STRUCTURE

Rook Ceph Cluster Structure

0 properties

JSON STRUCTURE

Rook Ceph Filesystem Structure

0 properties

JSON STRUCTURE

Rook Ceph Object Store Structure

0 properties

JSON STRUCTURE

Example Payloads

Rook List Buckets Example

2 fields

EXAMPLE

Rook List Objects Example

2 fields

EXAMPLE

Rook Put Object Example

2 fields

EXAMPLE

Resources

🔗
LinkedIn
LinkedIn
🔗
JSONSchema
JSONSchema
🔗
JSONSchema
JSONSchema
🔗
JSONSchema
JSONSchema
🔗
JSONSchema
JSONSchema
🔗
JSONStructure
JSONStructure
🔗
JSONLD
JSONLD
🔗
Vocabulary
Vocabulary
🔗
Rules
Rules
🔗
Capabilities
Capabilities
🔗
Website
Website
🔗
Documentation
Documentation
🚀
GettingStarted
GettingStarted
👥
GitHubOrganization
GitHubOrganization
👥
GitHubRepository
GitHubRepository
📰
Blog
Blog
🔗
Community
Community
🔗
Slack
Slack
📄
ChangeLog
ChangeLog
🔗
Security
Security
👥
StackOverflow
StackOverflow
🔗
X
X

Sources

Raw ↑
opencollection: 1.0.0
info:
  name: Rook Ceph Object Storage API
  version: 1.0.0
request:
  auth:
    type: apikey
    key: Authorization
    value: '{{Authorization}}'
    placement: header
items:
- info:
    name: Buckets
    type: folder
  items:
  - info:
      name: List All Buckets
      type: http
    http:
      method: GET
      url: http://{rgw-host}:{port}/
    docs: Returns a list of all S3 buckets owned by the authenticated user in the Ceph Object Storage gateway. The response
      includes bucket names and creation dates. Credentials are provided via AWS Signature Version 4 or Version 2 authentication
      using access keys provisioned by CephObjectStoreUser CRDs.
  - info:
      name: Create a Bucket
      type: http
    http:
      method: PUT
      url: http://{rgw-host}:{port}/:bucket
      params:
      - name: bucket
        value: ''
        type: path
        description: Name of the S3 bucket in the Ceph Object Storage gateway. Must be globally unique within the object store
          and follow DNS naming conventions.
    docs: Creates a new S3 bucket in the Ceph Object Storage gateway with the specified name. The bucket is created in the
      object store backing pool configured in the CephObjectStore CRD. Optional location constraint and ACL headers can be
      specified in the request.
  - info:
      name: Delete a Bucket
      type: http
    http:
      method: DELETE
      url: http://{rgw-host}:{port}/:bucket
      params:
      - name: bucket
        value: ''
        type: path
        description: Name of the S3 bucket in the Ceph Object Storage gateway. Must be globally unique within the object store
          and follow DNS naming conventions.
    docs: Deletes an empty S3 bucket from the Ceph Object Storage gateway. The bucket must be empty before it can be deleted.
      Returns HTTP 409 if the bucket is not empty.
  - info:
      name: Check Bucket Existence and Access
      type: http
    http:
      method: HEAD
      url: http://{rgw-host}:{port}/:bucket
      params:
      - name: bucket
        value: ''
        type: path
        description: Name of the S3 bucket in the Ceph Object Storage gateway. Must be globally unique within the object store
          and follow DNS naming conventions.
    docs: Checks whether a bucket exists and whether the caller has permission to access it. Returns HTTP 200 if the bucket
      exists and is accessible, HTTP 403 if the bucket exists but access is denied, or HTTP 404 if the bucket does not exist.
- info:
    name: Objects
    type: folder
  items:
  - info:
      name: List Objects in a Bucket
      type: http
    http:
      method: GET
      url: http://{rgw-host}:{port}/:bucket
      params:
      - name: bucket
        value: ''
        type: path
        description: Name of the S3 bucket in the Ceph Object Storage gateway. Must be globally unique within the object store
          and follow DNS naming conventions.
      - name: list-type
        value: ''
        type: query
        description: Set to 2 to use the newer List Objects V2 API which uses continuation tokens instead of markers for pagination.
      - name: prefix
        value: ''
        type: query
        description: Limits the response to keys beginning with the specified prefix. Used to organize objects into virtual
          directories.
      - name: delimiter
        value: ''
        type: query
        description: Character used to group keys. All keys that contain the delimiter between the prefix and the first occurrence
          of the delimiter are grouped into a single CommonPrefix entry.
      - name: max-keys
        value: ''
        type: query
        description: Maximum number of keys to return in a single response. Defaults to 1000, maximum is 1000.
      - name: continuation-token
        value: ''
        type: query
        description: Token from a previous List Objects V2 response used to continue listing from where the previous call
          left off.
      - name: marker
        value: ''
        type: query
        description: Key after which listing should begin, used for pagination in List Objects V1 API.
    docs: Returns a list of objects stored in the specified S3 bucket. Supports filtering by prefix, delimiter for hierarchical
      listings, and pagination through continuation tokens. Returns up to 1000 objects per request by default.
  - info:
      name: Download an Object
      type: http
    http:
      method: GET
      url: http://{rgw-host}:{port}/:bucket/:key
      headers:
      - name: Range
        value: ''
      - name: If-Match
        value: ''
      - name: If-None-Match
        value: ''
      params:
      - name: bucket
        value: ''
        type: path
        description: Name of the S3 bucket in the Ceph Object Storage gateway. Must be globally unique within the object store
          and follow DNS naming conventions.
      - name: key
        value: ''
        type: path
        description: Object key (path) within the bucket. Can include forward slashes to simulate a directory hierarchy, with
          a maximum length of 1024 bytes.
    docs: Downloads the data and metadata of an object from the specified key in the S3 bucket. Supports range requests for
      partial content retrieval and conditional requests using ETag or Last-Modified headers. Returns the object data in the
      response body.
  - info:
      name: Upload an Object
      type: http
    http:
      method: PUT
      url: http://{rgw-host}:{port}/:bucket/:key
      params:
      - name: bucket
        value: ''
        type: path
        description: Name of the S3 bucket in the Ceph Object Storage gateway. Must be globally unique within the object store
          and follow DNS naming conventions.
      - name: key
        value: ''
        type: path
        description: Object key (path) within the bucket. Can include forward slashes to simulate a directory hierarchy, with
          a maximum length of 1024 bytes.
    docs: Uploads an object to the specified key in the S3 bucket. The object data is included in the request body. Optional
      request headers allow specifying content type, content encoding, server-side encryption, storage class, and custom metadata
      prefixed with x-amz-meta-.
  - info:
      name: Delete an Object
      type: http
    http:
      method: DELETE
      url: http://{rgw-host}:{port}/:bucket/:key
      params:
      - name: bucket
        value: ''
        type: path
        description: Name of the S3 bucket in the Ceph Object Storage gateway. Must be globally unique within the object store
          and follow DNS naming conventions.
      - name: key
        value: ''
        type: path
        description: Object key (path) within the bucket. Can include forward slashes to simulate a directory hierarchy, with
          a maximum length of 1024 bytes.
    docs: Deletes the specified object from the S3 bucket. If versioning is enabled, this creates a delete marker rather than
      permanently removing the object. The operation is idempotent and returns HTTP 204 even if the object does not exist.
  - info:
      name: Get Object Metadata
      type: http
    http:
      method: HEAD
      url: http://{rgw-host}:{port}/:bucket/:key
      params:
      - name: bucket
        value: ''
        type: path
        description: Name of the S3 bucket in the Ceph Object Storage gateway. Must be globally unique within the object store
          and follow DNS naming conventions.
      - name: key
        value: ''
        type: path
        description: Object key (path) within the bucket. Can include forward slashes to simulate a directory hierarchy, with
          a maximum length of 1024 bytes.
    docs: Retrieves the metadata of an object without downloading the object data. Returns HTTP headers containing content
      type, content length, ETag, last modified date, and any custom metadata associated with the object.
- info:
    name: Multipart Uploads
    type: folder
  items:
  - info:
      name: List In-Progress Multipart Uploads
      type: http
    http:
      method: GET
      url: http://{rgw-host}:{port}/:bucket?uploads
      params:
      - name: bucket
        value: ''
        type: path
        description: Name of the S3 bucket in the Ceph Object Storage gateway. Must be globally unique within the object store
          and follow DNS naming conventions.
      - name: uploads
        value: ''
        type: query
    docs: Returns a list of in-progress multipart uploads for the specified bucket. Useful for identifying and cleaning up
      incomplete multipart uploads that may be consuming storage quota.
  - info:
      name: Initiate a Multipart Upload
      type: http
    http:
      method: POST
      url: http://{rgw-host}:{port}/:bucket/:key?uploads
      params:
      - name: bucket
        value: ''
        type: path
        description: Name of the S3 bucket in the Ceph Object Storage gateway. Must be globally unique within the object store
          and follow DNS naming conventions.
      - name: key
        value: ''
        type: path
        description: Object key (path) within the bucket. Can include forward slashes to simulate a directory hierarchy, with
          a maximum length of 1024 bytes.
      - name: uploads
        value: ''
        type: query
    docs: Initiates a multipart upload for a large object and returns an upload ID that must be used in subsequent part upload
      and complete requests. Parts can then be uploaded in parallel using the upload ID. The multipart upload is not visible
      in the bucket until it is completed with a CompleteMultipartUpload request.
bundled: true