cloudstack icon indicating copy to clipboard operation
cloudstack copied to clipboard

Add support for Ceph RGW Object Store

Open wido opened this issue 1 year ago • 36 comments
trafficstars

Description

This PR adds support for the Ceph RGW as an Object Store Driver in CloudStack

Types of changes

  • [x] New feature (non-breaking change which adds functionality)

Screenshots (if appropriate):

Screenshot from 2023-12-20 17-10-04

How Has This Been Tested?

I have a local Ceph environment (IPv6 only) running with the RADOS Gateway (S3 server) running against which I tested this PR.

It also has SSL enabled so it could verify that this works as expected.

How did you try to break this feature and the system with this change?

I manually tried to create and remove buckets and that worked as expected.

wido avatar Dec 20 '23 16:12 wido

Codecov Report

All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 4.21%. Comparing base (cd8442a) to head (d036e02).

:exclamation: There is a different number of reports uploaded between BASE (cd8442a) and HEAD (d036e02). Click for more details.

HEAD has 1 upload less than BASE
Flag BASE (cd8442a) HEAD (d036e02)
unittests 1 0
Additional details and impacted files
@@             Coverage Diff              @@
##               main   #8389       +/-   ##
============================================
- Coverage     15.54%   4.21%   -11.34%     
============================================
  Files          5495     373     -5122     
  Lines        481076   30463   -450613     
  Branches      62235    5399    -56836     
============================================
- Hits          74785    1283    -73502     
+ Misses       398028   29035   -368993     
+ Partials       8263     145     -8118     
Flag Coverage Δ
uitests 4.21% <ø> (ø)
unittests ?

Flags with carried forward coverage won't be shown. Click here to find out more.

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

codecov[bot] avatar Dec 20 '23 16:12 codecov[bot]

This pull request has merge conflicts. Dear author, please fix the conflicts and sync your branch with the base branch.

github-actions[bot] avatar Jan 09 '24 12:01 github-actions[bot]

@blueorangutan package

DaanHoogland avatar Jan 18 '24 09:01 DaanHoogland

@DaanHoogland a [SL] Jenkins job has been kicked to build packages. It will be bundled with KVM, XenServer and VMware SystemVM templates. I'll keep you posted as I make progress.

blueorangutan avatar Jan 18 '24 09:01 blueorangutan

Packaging result [SF]: ✖️ el7 ✖️ el8 ✖️ el9 ✖️ debian ✖️ suse15. SL-JID 8356

blueorangutan avatar Jan 18 '24 09:01 blueorangutan

@wido I'll help kick tests again - can you check for build failures?

@blueorangutan package

rohityadavcloud avatar Feb 05 '24 09:02 rohityadavcloud

@rohityadavcloud a [SL] Jenkins job has been kicked to build packages. It will be bundled with KVM, XenServer and VMware SystemVM templates. I'll keep you posted as I make progress.

blueorangutan avatar Feb 05 '24 09:02 blueorangutan

Packaging result [SF]: ✖️ el7 ✖️ el8 ✖️ el9 ✖️ debian ✖️ suse15. SL-JID 8524

blueorangutan avatar Feb 05 '24 11:02 blueorangutan

@blueorangutan package

weizhouapache avatar Feb 06 '24 12:02 weizhouapache

@weizhouapache a [SL] Jenkins job has been kicked to build packages. It will be bundled with KVM, XenServer and VMware SystemVM templates. I'll keep you posted as I make progress.

blueorangutan avatar Feb 06 '24 12:02 blueorangutan

Packaging result [SF]: ✖️ el7 ✖️ el8 ✖️ el9 ✖️ debian ✖️ suse15. SL-JID 8548

blueorangutan avatar Feb 06 '24 13:02 blueorangutan

test failure found

Error:  Tests run: 2, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 1.059 s <<< FAILURE! - in org.apache.cloudstack.storage.datastore.provider.CephObjectStoreProviderImplTest
Error:  testGetName(org.apache.cloudstack.storage.datastore.provider.CephObjectStoreProviderImplTest)  Time elapsed: 0.01 s  <<< FAILURE!
org.junit.ComparisonFailure: expected:<Ceph[ RGW]> but was:<Ceph[]>
	at org.apache.cloudstack.storage.datastore.provider.CephObjectStoreProviderImplTest.testGetName(CephObjectStoreProviderImplTest.java:41)

cc @wido

weizhouapache avatar Feb 06 '24 13:02 weizhouapache

This pull request has merge conflicts. Dear author, please fix the conflicts and sync your branch with the base branch.

github-actions[bot] avatar Feb 06 '24 14:02 github-actions[bot]

@blueorangutan package

weizhouapache avatar Feb 06 '24 18:02 weizhouapache

@weizhouapache a [SL] Jenkins job has been kicked to build packages. It will be bundled with KVM, XenServer and VMware SystemVM templates. I'll keep you posted as I make progress.

blueorangutan avatar Feb 06 '24 18:02 blueorangutan

Packaging result [SF]: ✖️ el7 ✖️ el8 ✖️ el9 ✖️ debian ✖️ suse15. SL-JID 8554

blueorangutan avatar Feb 06 '24 18:02 blueorangutan

@wido can you have a look at the build failure?

rohityadavcloud avatar Feb 16 '24 08:02 rohityadavcloud

I am going to look at the build failure and improving the logging as requested. Give me some time.

wido avatar Feb 22 '24 07:02 wido

I just rebased and implemented the new logger way of working.

wido avatar Mar 12 '24 12:03 wido

Code wise this PR is now good? We are just waiting for the tests to proceed, correct?

wido avatar Jun 04 '24 15:06 wido

@blueorangutan package

DaanHoogland avatar Jun 04 '24 18:06 DaanHoogland

@DaanHoogland a [SL] Jenkins job has been kicked to build packages. It will be bundled with KVM, XenServer and VMware SystemVM templates. I'll keep you posted as I make progress.

blueorangutan avatar Jun 04 '24 18:06 blueorangutan

Code wise this PR is now good? We are just waiting for the tests to proceed, correct?

@wido it is great. I will setup a ceph environment and do some testing (probably next week).

weizhouapache avatar Jun 04 '24 18:06 weizhouapache

Packaging result [SF]: ✖️ el7 ✖️ el8 ✖️ el9 ✖️ debian ✖️ suse15. SL-JID 9781

blueorangutan avatar Jun 04 '24 19:06 blueorangutan

@wido the builds fail with

20:25:32 [ERROR] Errors: 
20:25:32 [ERROR]   UriUtilsTest.validateUrl:285 ? IllegalArgument Unable to resolve ipv6.google.c...

I don't understand the lint failure in the GHA, as the file reported does not seem to be touched in this PR.

DaanHoogland avatar Jun 05 '24 06:06 DaanHoogland

Code wise this PR is now good? We are just waiting for the tests to proceed, correct?

@wido it is great. I will setup a ceph environment and do some testing (probably next week).

Ok! Keep in mind that getting the object browser to work in the UI will be difficult. This is due to CORS and outside the scope of this PR.

That is something we need to fix regardless of this PR

wido avatar Jun 05 '24 07:06 wido

@wido the builds fail with

20:25:32 [ERROR] Errors: 
20:25:32 [ERROR]   UriUtilsTest.validateUrl:285 ? IllegalArgument Unable to resolve ipv6.google.c...

I don't understand the lint failure in the GHA, as the file reported does not seem to be touched in this PR.

I am touchting the UriUtils.java file and removing an IPv6 check there. I'll have to verify why this fails then

wido avatar Jun 05 '24 07:06 wido

I don't understand the lint failure in the GHA, as the file reported does not seem to be touched in this PR.

this was about the lint failure, but that passes now.

DaanHoogland avatar Jun 05 '24 07:06 DaanHoogland

Code wise this PR is now good? We are just waiting for the tests to proceed, correct?

@wido it is great. I will setup a ceph environment and do some testing (probably next week).

Ok! Keep in mind that getting the object browser to work in the UI will be difficult. This is due to CORS and outside the scope of this PR.

That is something we need to fix regardless of this PR

Noted Thanks @wido

weizhouapache avatar Jun 05 '24 09:06 weizhouapache

Can I ping somebody to get this one merged?

wido avatar Jul 22 '24 07:07 wido