]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mgr/cephadm: store iscsi cert and key in cert store
authorAdam King <adking@redhat.com>
Wed, 7 Feb 2024 20:51:56 +0000 (15:51 -0500)
committerAdam King <adking@redhat.com>
Fri, 12 Jul 2024 13:05:45 +0000 (09:05 -0400)
In an effort to organize our handling of certs and
offer cert management functionality in the future

Signed-off-by: Adam King <adking@redhat.com>
(cherry picked from commit a7e05c2f5acd4ec683056cc163320a28481f8269)

src/pybind/mgr/cephadm/inventory.py

index eb5679587b3ae7c0c346cd26fa2efb2e404c42c2..a45ce13a5382d7b2ec273e38d161676fe0a455c4 100644 (file)
@@ -18,6 +18,7 @@ from ceph.deployment.service_spec import (
     TunedProfileSpec,
     IngressSpec,
     RGWSpec,
+    IscsiServiceSpec,
 )
 from ceph.utils import str_to_datetime, datetime_to_str, datetime_now
 from orchestrator import OrchestratorError, HostSpec, OrchestratorEvent, service_to_daemon_types
@@ -361,6 +362,20 @@ class SpecStore():
                     cert_str,
                     service_name=rgw_spec.service_name(),
                     user_made=True)
+        elif spec.service_type == 'iscsi':
+            iscsi_spec = cast(IscsiServiceSpec, spec)
+            if iscsi_spec.ssl_cert:
+                self.mgr.cert_key_store.save_cert(
+                    'iscsi_ssl_cert',
+                    iscsi_spec.ssl_cert,
+                    service_name=iscsi_spec.service_name(),
+                    user_made=True)
+            if iscsi_spec.ssl_key:
+                self.mgr.cert_key_store.save_key(
+                    'iscsi_ssl_key',
+                    iscsi_spec.ssl_key,
+                    service_name=iscsi_spec.service_name(),
+                    user_made=True)
 
     def rm(self, service_name: str) -> bool:
         if service_name not in self._specs:
@@ -393,6 +408,9 @@ class SpecStore():
     def _rm_certs_and_keys(self, spec: ServiceSpec) -> None:
         if spec.service_type == 'rgw':
             self.mgr.cert_key_store.rm_cert('rgw_frontend_ssl_cert', service_name=spec.service_name())
+        if spec.service_type == 'iscsi':
+            self.mgr.cert_key_store.rm_cert('iscsi_ssl_cert', service_name=spec.service_name())
+            self.mgr.cert_key_store.rm_key('iscsi_ssl_key', service_name=spec.service_name())
 
     def get_created(self, spec: ServiceSpec) -> Optional[datetime.datetime]:
         return self.spec_created.get(spec.service_name())