Skip to content

Commit 209332f

Browse files
committed
object storage: Add Ceph RGW support
This commit adds support for Ceph's RADOS Gateway (RGW) support for the Object Store feature of CloudStack. The RGW of Ceph is Amazon S3 compliant and is therefor an easy and straigforward implementation of basic S3 features. Existing Ceph environments can have the RGW added as an additional feature to a cluster already providing RBD (Block Device) to a CloudStack environment.
1 parent e12ef9d commit 209332f

File tree

13 files changed

+873
-4
lines changed

13 files changed

+873
-4
lines changed

api/src/main/java/com/cloud/agent/api/to/BucketTO.java

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,14 @@ public final class BucketTO {
2222

2323
private String name;
2424

25+
private String accessKey;
26+
27+
private String secretKey;
28+
2529
public BucketTO(Bucket bucket) {
2630
this.name = bucket.getName();
31+
this.accessKey = bucket.getAccessKey();
32+
this.secretKey = bucket.getSecretKey();
2733
}
2834

2935
public BucketTO(String name) {
@@ -33,4 +39,12 @@ public BucketTO(String name) {
3339
public String getName() {
3440
return this.name;
3541
}
42+
43+
public String getAccessKey() {
44+
return this.accessKey;
45+
}
46+
47+
public String getSecretKey() {
48+
return this.secretKey;
49+
}
3650
}

client/pom.xml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -652,6 +652,11 @@
652652
<artifactId>cloud-plugin-storage-object-minio</artifactId>
653653
<version>${project.version}</version>
654654
</dependency>
655+
<dependency>
656+
<groupId>org.apache.cloudstack</groupId>
657+
<artifactId>cloud-plugin-storage-object-ceph</artifactId>
658+
<version>${project.version}</version>
659+
</dependency>
655660
<dependency>
656661
<groupId>org.apache.cloudstack</groupId>
657662
<artifactId>cloud-plugin-storage-object-simulator</artifactId>

plugins/pom.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -137,6 +137,7 @@
137137
<module>storage/volume/flasharray</module>
138138
<module>storage/volume/primera</module>
139139
<module>storage/object/minio</module>
140+
<module>storage/object/ceph</module>
140141
<module>storage/object/simulator</module>
141142

142143

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
<!--
2+
Licensed to the Apache Software Foundation (ASF) under one
3+
or more contributor license agreements. See the NOTICE file
4+
distributed with this work for additional information
5+
regarding copyright ownership. The ASF licenses this file
6+
to you under the Apache License, Version 2.0 (the
7+
"License"); you may not use this file except in compliance
8+
with the License. You may obtain a copy of the License at
9+
10+
http://www.apache.org/licenses/LICENSE-2.0
11+
12+
Unless required by applicable law or agreed to in writing,
13+
software distributed under the License is distributed on an
14+
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15+
KIND, either express or implied. See the License for the
16+
specific language governing permissions and limitations
17+
under the License.
18+
-->
19+
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
20+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
21+
<modelVersion>4.0.0</modelVersion>
22+
<artifactId>cloud-plugin-storage-object-ceph</artifactId>
23+
<name>Apache CloudStack Plugin - Ceph RGW object storage provider</name>
24+
<parent>
25+
<groupId>org.apache.cloudstack</groupId>
26+
<artifactId>cloudstack-plugins</artifactId>
27+
<version>4.19.0.0-SNAPSHOT</version>
28+
<relativePath>../../../pom.xml</relativePath>
29+
</parent>
30+
<dependencies>
31+
<dependency>
32+
<groupId>org.apache.cloudstack</groupId>
33+
<artifactId>cloud-engine-storage</artifactId>
34+
<version>${project.version}</version>
35+
</dependency>
36+
<dependency>
37+
<groupId>org.apache.cloudstack</groupId>
38+
<artifactId>cloud-engine-storage-object</artifactId>
39+
<version>${project.version}</version>
40+
</dependency>
41+
<dependency>
42+
<groupId>org.apache.cloudstack</groupId>
43+
<artifactId>cloud-engine-schema</artifactId>
44+
<version>${project.version}</version>
45+
</dependency>
46+
<dependency>
47+
<groupId>io.github.twonote</groupId>
48+
<artifactId>radosgw-admin4j</artifactId>
49+
<version>2.0.9</version>
50+
</dependency>
51+
</dependencies>
52+
</project>

0 commit comments

Comments
 (0)