<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://tech.uvoo.io/index.php?action=history&amp;feed=atom&amp;title=Ceph_bucket</id>
	<title>Ceph bucket - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://tech.uvoo.io/index.php?action=history&amp;feed=atom&amp;title=Ceph_bucket"/>
	<link rel="alternate" type="text/html" href="https://tech.uvoo.io/index.php?title=Ceph_bucket&amp;action=history"/>
	<updated>2026-04-19T17:33:15Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.35.2</generator>
	<entry>
		<id>https://tech.uvoo.io/index.php?title=Ceph_bucket&amp;diff=5509&amp;oldid=prev</id>
		<title>Busk: Created page with &quot;Ceph Bucket ceph-bucket storage class WF ``` Workflow of ceph-bucket in Rook-Ceph 1. Define a CephObjectStore (Ceph RGW) Before creating a bucket, you must have a CephObjectSt...&quot;</title>
		<link rel="alternate" type="text/html" href="https://tech.uvoo.io/index.php?title=Ceph_bucket&amp;diff=5509&amp;oldid=prev"/>
		<updated>2025-02-21T15:31:32Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;Ceph Bucket ceph-bucket storage class WF ``` Workflow of ceph-bucket in Rook-Ceph 1. Define a CephObjectStore (Ceph RGW) Before creating a bucket, you must have a CephObjectSt...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Ceph Bucket ceph-bucket storage class WF&lt;br /&gt;
```&lt;br /&gt;
Workflow of ceph-bucket in Rook-Ceph&lt;br /&gt;
1. Define a CephObjectStore (Ceph RGW)&lt;br /&gt;
Before creating a bucket, you must have a CephObjectStore, which represents the Ceph RGW (RADOS Gateway) instance running in your cluster.&lt;br /&gt;
&lt;br /&gt;
Example CephObjectStore:&lt;br /&gt;
&lt;br /&gt;
yaml&lt;br /&gt;
Copy&lt;br /&gt;
Edit&lt;br /&gt;
apiVersion: ceph.rook.io/v1&lt;br /&gt;
kind: CephObjectStore&lt;br /&gt;
metadata:&lt;br /&gt;
  name: my-store&lt;br /&gt;
  namespace: rook-ceph&lt;br /&gt;
spec:&lt;br /&gt;
  gateway:&lt;br /&gt;
    port: 80&lt;br /&gt;
    securePort: 443&lt;br /&gt;
    instances: 1&lt;br /&gt;
  metadataPool:&lt;br /&gt;
    replicated:&lt;br /&gt;
      size: 3&lt;br /&gt;
  dataPool:&lt;br /&gt;
    replicated:&lt;br /&gt;
      size: 3&lt;br /&gt;
This creates an RGW instance that will be responsible for serving S3 requests.&lt;br /&gt;
&lt;br /&gt;
2. Create a CephObjectStoreUser&lt;br /&gt;
A user is required to interact with the S3 storage.&lt;br /&gt;
&lt;br /&gt;
Example CephObjectStoreUser:&lt;br /&gt;
&lt;br /&gt;
yaml&lt;br /&gt;
Copy&lt;br /&gt;
Edit&lt;br /&gt;
apiVersion: ceph.rook.io/v1&lt;br /&gt;
kind: CephObjectStoreUser&lt;br /&gt;
metadata:&lt;br /&gt;
  name: my-user&lt;br /&gt;
  namespace: rook-ceph&lt;br /&gt;
spec:&lt;br /&gt;
  store: my-store&lt;br /&gt;
  displayName: &amp;quot;My Object Store User&amp;quot;&lt;br /&gt;
Once applied, a Kubernetes secret is created that holds the access credentials (AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY).&lt;br /&gt;
&lt;br /&gt;
3. Define a CephBucket (via ObjectBucketClaim)&lt;br /&gt;
To dynamically create a bucket, use an ObjectBucketClaim (OBC), which is managed by Rook's Object Bucket (OB) controller.&lt;br /&gt;
&lt;br /&gt;
Example ObjectBucketClaim:&lt;br /&gt;
&lt;br /&gt;
yaml&lt;br /&gt;
Copy&lt;br /&gt;
Edit&lt;br /&gt;
apiVersion: objectbucket.io/v1alpha1&lt;br /&gt;
kind: ObjectBucketClaim&lt;br /&gt;
metadata:&lt;br /&gt;
  name: my-bucket&lt;br /&gt;
  namespace: default&lt;br /&gt;
spec:&lt;br /&gt;
  generateBucketName: my-bucket&lt;br /&gt;
  storageClassName: rook-ceph-bucket&lt;br /&gt;
The storageClassName should match the Ceph Rook Object Store's storage class.&lt;br /&gt;
The bucket name is dynamically generated and bound to a CephBucket.&lt;br /&gt;
This creates:&lt;br /&gt;
&lt;br /&gt;
A CephBucket in Ceph RGW.&lt;br /&gt;
A Secret containing the S3 credentials.&lt;br /&gt;
A ConfigMap with the S3 endpoint and bucket details.&lt;br /&gt;
4. Accessing the CephBucket&lt;br /&gt;
Once the ObjectBucketClaim is created, check the secret and config map:&lt;br /&gt;
&lt;br /&gt;
bash&lt;br /&gt;
Copy&lt;br /&gt;
Edit&lt;br /&gt;
kubectl get secrets my-bucket -o yaml&lt;br /&gt;
kubectl get configmap my-bucket -o yaml&lt;br /&gt;
These contain:&lt;br /&gt;
&lt;br /&gt;
S3 Endpoint (AWS_ENDPOINT)&lt;br /&gt;
Bucket Name&lt;br /&gt;
Access &amp;amp; Secret Key&lt;br /&gt;
You can then use tools like AWS CLI, MinIO Client, or S3 SDKs to interact with the bucket.&lt;br /&gt;
&lt;br /&gt;
Example AWS CLI usage:&lt;br /&gt;
&lt;br /&gt;
bash&lt;br /&gt;
Copy&lt;br /&gt;
Edit&lt;br /&gt;
export AWS_ACCESS_KEY_ID=&amp;lt;your-access-key&amp;gt;&lt;br /&gt;
export AWS_SECRET_ACCESS_KEY=&amp;lt;your-secret-key&amp;gt;&lt;br /&gt;
aws --endpoint-url=http://rook-ceph-rgw.default.svc:80 s3 ls&lt;br /&gt;
Summary&lt;br /&gt;
CephObjectStore = Ceph RGW service (S3-compatible).&lt;br /&gt;
CephObjectStoreUser = S3 user with access keys.&lt;br /&gt;
ObjectBucketClaim = Dynamically creates a CephBucket and credentials.&lt;br /&gt;
Rook-Ceph handles storage provisioning and lifecycle.&lt;br /&gt;
```&lt;/div&gt;</summary>
		<author><name>Busk</name></author>
	</entry>
</feed>