]> git.apps.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>
Mon, 15 Mar 2021 22:55:16 +0000 (18:55 -0400)
Previously we were assuming beast.

Signed-off-by: Sage Weil <sage@newdream.net>
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 4606247997345b63885e81946918186fd18536b1..31dea4fdc0f15b6f3096615d45070a1ff66a2794 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 1c45780778c496d71fe2b7f89c43e7df10f8f81b..00a6a73b1ed29d763fa74737100e9741d1f3bb8a 100644 (file)
@@ -707,6 +707,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,
@@ -728,6 +729,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
 ---