]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
Allow passing ssl_certificate as an rgw_frontend_extra_arg. 61530/head
authoraza547 <alexander-12345@hotmail.co.uk>
Sun, 26 Jan 2025 18:10:59 +0000 (18:10 +0000)
committeraza547 <alexander-12345@hotmail.co.uk>
Mon, 27 Jan 2025 17:57:10 +0000 (17:57 +0000)
Fixes: https://tracker.ceph.com/issues/69567
Signed-off-by: Alexander Hussein-Kershaw <alexhus@microsoft.com>
fix markup

src/pybind/mgr/cephadm/services/cephadmservice.py

index 4f83d7bb0fb52e844e711ae045a4897922e5ecd3..9cefe72f8581f6a6bf713e86e8c686900daab52d 100644 (file)
@@ -1078,6 +1078,17 @@ class RgwService(CephService):
         # configure frontend
         args = []
         ftype = spec.rgw_frontend_type or "beast"
+
+        # if an ssl_certificate arg was passed as part of rgw_frontend_extra_args
+        # then we shouldn't add it automatically else the rgw won't start
+        extra_ssl_cert_provided = any(
+            arg.startswith("ssl_certificate=")
+            for arg in (spec.rgw_frontend_extra_args or [])
+        )
+
+        if extra_ssl_cert_provided and spec.generate_cert:
+            raise OrchestratorError("Cannot provide ssl_certificate in combination with generate_cert")
+
         if ftype == 'beast':
             if spec.ssl:
                 if daemon_spec.ip:
@@ -1087,7 +1098,7 @@ class RgwService(CephService):
                     args.append(f"ssl_port={port}")
                 if spec.generate_cert:
                     args.append(f"ssl_certificate=config://rgw/cert/{daemon_spec.name()}")
-                else:
+                elif not extra_ssl_cert_provided:
                     args.append(f"ssl_certificate=config://rgw/cert/{spec.service_name()}")
             else:
                 if daemon_spec.ip:
@@ -1103,7 +1114,7 @@ class RgwService(CephService):
                     args.append(f"port={port}s")  # note the 's' suffix on port
                 if spec.generate_cert:
                     args.append(f"ssl_certificate=config://rgw/cert/{daemon_spec.name()}")
-                else:
+                elif not extra_ssl_cert_provided:
                     args.append(f"ssl_certificate=config://rgw/cert/{spec.service_name()}")
             else:
                 if daemon_spec.ip: