]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
mgr/cephadm: move node-exporter cert/key to cert store
authorAdam King <adking@redhat.com>
Tue, 6 Feb 2024 01:07:15 +0000 (20:07 -0500)
committerAdam King <adking@redhat.com>
Fri, 12 Jul 2024 13:05:45 +0000 (09:05 -0400)
We weren't storing this before, but we want to
add some cert management stuff later, so it's
good to start doing so

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

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

index 56778083b8b339e316704537141ab216a5068360..5a94c0e6cc6b72f55dad9d05ecb113875f56783f 100644 (file)
@@ -628,8 +628,13 @@ class NodeExporterService(CephadmService):
         if self.mgr.secure_monitoring_stack:
             node_ip = self.mgr.inventory.get_addr(daemon_spec.host)
             host_fqdn = self._inventory_get_fqdn(daemon_spec.host)
-            cert, key = self.mgr.http_server.service_discovery.ssl_certs.generate_cert(
-                host_fqdn, node_ip)
+            cert = self.mgr.cert_key_store.get_cert('node_exporter_cert', host=daemon_spec.host)
+            key = self.mgr.cert_key_store.get_key('node_exporter_key', host=daemon_spec.host)
+            if not (cert and key):
+                cert, key = self.mgr.http_server.service_discovery.ssl_certs.generate_cert(
+                    host_fqdn, node_ip)
+                self.mgr.cert_key_store.save_cert('node_exporter_cert', cert, host=daemon_spec.host)
+                self.mgr.cert_key_store.save_key('node_exporter_key', key, host=daemon_spec.host)
             r = {
                 'files': {
                     'web.yml': self.mgr.template.render('services/node-exporter/web.yml.j2', {}),
@@ -644,6 +649,15 @@ class NodeExporterService(CephadmService):
 
         return r, deps
 
+    def pre_remove(self, daemon: DaemonDescription) -> None:
+        """
+        Called before node-exporter daemon is removed.
+        """
+        if daemon.hostname is not None:
+            # delete cert/key entires for this node-exporter daemon
+            self.mgr.cert_key_store.rm_cert('node_exporter_cert', host=daemon.hostname)
+            self.mgr.cert_key_store.rm_key('node_exporter_key', host=daemon.hostname)
+
     def ok_to_stop(self,
                    daemon_ids: List[str],
                    force: bool = False,