]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
mgr/cephadm: add support for rgw_frontend_type (beast or civetweb)
authorSage Weil <sage@newdream.net>
Wed, 10 Mar 2021 22:51:49 +0000 (17:51 -0500)
committerSage Weil <sage@newdream.net>
Wed, 17 Mar 2021 21:24:22 +0000 (16:24 -0500)
Previously we were assuming beast.

Signed-off-by: Sage Weil <sage@newdream.net>
(cherry picked from commit c490acd1281413e399c5d09a5d9594ee8f9357b0)

src/pybind/mgr/cephadm/services/cephadmservice.py
src/python-common/ceph/deployment/service_spec.py
src/python-common/ceph/tests/test_service_spec.py

index c9e84c8b2d5b0bc668b65022893e0397264f7dab..b7de0a488d6ac321a635e2b5301c9a784168cdbb 100644 (file)
@@ -732,12 +732,20 @@ class RgwService(CephService):
 
         # configure frontend
         args = []
-        if spec.ssl:
-            args.append(f"ssl_port={daemon_spec.ports[0]}")
-            args.append(f"ssl_certificate=config://rgw/cert/{spec.service_name()}.crt")
-        else:
-            args.append(f"port={daemon_spec.ports[0]}")
-        frontend = f'beast {" ".join(args)}'
+        ftype = spec.rgw_frontend_type or "beast"
+        if ftype == 'beast':
+            if spec.ssl:
+                args.append(f"ssl_port={daemon_spec.ports[0]}")
+                args.append(f"ssl_certificate=config://rgw/cert/{spec.service_name()}.crt")
+            else:
+                args.append(f"port={daemon_spec.ports[0]}")
+        elif ftype == 'civetweb':
+            if spec.ssl:
+                args.append(f"port={daemon_spec.ports[0]}s")  # note the 's' suffix on port
+                args.append(f"ssl_certificate=config://rgw/cert/{spec.service_name()}.crt")
+            else:
+                args.append(f"port={daemon_spec.ports[0]}")
+        frontend = f'{ftype} {" ".join(args)}'
 
         ret, out, err = self.mgr.check_mon_command({
             'prefix': 'config set',
index 66e4a5f07c19a97e4070330d8ace064c0d28b8b7..a69c5c0e96a64ea2aac8276705a1b51e4b8a8feb 100644 (file)
@@ -703,6 +703,7 @@ class RGWSpec(ServiceSpec):
                  rgw_zone: Optional[str] = None,
                  rgw_frontend_port: Optional[int] = None,
                  rgw_frontend_ssl_certificate: Optional[List[str]] = None,
+                 rgw_frontend_type: Optional[str] = None,
                  unmanaged: bool = False,
                  ssl: bool = False,
                  preview_only: bool = False,
@@ -724,6 +725,7 @@ class RGWSpec(ServiceSpec):
         self.rgw_zone = rgw_zone
         self.rgw_frontend_port = rgw_frontend_port
         self.rgw_frontend_ssl_certificate = rgw_frontend_ssl_certificate
+        self.rgw_frontend_type = rgw_frontend_type
         self.ssl = ssl
 
     def get_port_start(self) -> Optional[int]:
index 210e63d1307869587fae7bf962d436dbbddd81f0..ec75e3dbaed1dc76b93eda3430f80197975c51f7 100644 (file)
@@ -201,6 +201,7 @@ placement:
   hosts:
   - ceph-001
 spec:
+  rgw_frontend_type: civetweb
   rgw_realm: default-rgw-realm
   rgw_zone: eu-central-1
 ---