From a3ca7216c2e3ddf383a768acb935a913bd6940f7 Mon Sep 17 00:00:00 2001 From: John Mulligan Date: Thu, 19 Oct 2023 17:30:27 -0400 Subject: [PATCH] cephadm: move code setting up mounts for monitoring daemon types Move the code used to set up mounts for monitoring daemon types to a method on the Monitoring class. Signed-off-by: John Mulligan --- src/cephadm/cephadm.py | 68 ++++++++++++++++++++++++++++-------------- 1 file changed, 45 insertions(+), 23 deletions(-) diff --git a/src/cephadm/cephadm.py b/src/cephadm/cephadm.py index 8c5d835b705..5cfc4938ffc 100755 --- a/src/cephadm/cephadm.py +++ b/src/cephadm/cephadm.py @@ -810,6 +810,49 @@ class Monitoring(ContainerDaemonForm): '--path.rootfs=/rootfs'] return r + def get_container_mounts(self, data_dir: str) -> Dict[str, str]: + ctx = self.ctx + daemon_type = self.identity.daemon_type + mounts: Dict[str, str] = {} + log_dir = get_log_dir(self.identity.fsid, ctx.log_dir) + if daemon_type == 'prometheus': + mounts[ + os.path.join(data_dir, 'etc/prometheus') + ] = '/etc/prometheus:Z' + mounts[os.path.join(data_dir, 'data')] = '/prometheus:Z' + elif daemon_type == 'loki': + mounts[os.path.join(data_dir, 'etc/loki')] = '/etc/loki:Z' + mounts[os.path.join(data_dir, 'data')] = '/loki:Z' + elif daemon_type == 'promtail': + mounts[os.path.join(data_dir, 'etc/promtail')] = '/etc/promtail:Z' + mounts[log_dir] = '/var/log/ceph:z' + mounts[os.path.join(data_dir, 'data')] = '/promtail:Z' + elif daemon_type == 'node-exporter': + mounts[ + os.path.join(data_dir, 'etc/node-exporter') + ] = '/etc/node-exporter:Z' + mounts['/proc'] = '/host/proc:ro' + mounts['/sys'] = '/host/sys:ro' + mounts['/'] = '/rootfs:ro' + elif daemon_type == 'grafana': + mounts[ + os.path.join(data_dir, 'etc/grafana/grafana.ini') + ] = '/etc/grafana/grafana.ini:Z' + mounts[ + os.path.join(data_dir, 'etc/grafana/provisioning/datasources') + ] = '/etc/grafana/provisioning/datasources:Z' + mounts[ + os.path.join(data_dir, 'etc/grafana/certs') + ] = '/etc/grafana/certs:Z' + mounts[ + os.path.join(data_dir, 'data/grafana.db') + ] = '/var/lib/grafana/grafana.db:Z' + elif daemon_type == 'alertmanager': + mounts[ + os.path.join(data_dir, 'etc/alertmanager') + ] = '/etc/alertmanager:Z' + return mounts + ################################## @@ -2619,29 +2662,8 @@ def get_container_mounts( if daemon_type in Monitoring.components: data_dir = ident.data_dir(ctx.data_dir) - log_dir = get_log_dir(fsid, ctx.log_dir) - if daemon_type == 'prometheus': - mounts[os.path.join(data_dir, 'etc/prometheus')] = '/etc/prometheus:Z' - mounts[os.path.join(data_dir, 'data')] = '/prometheus:Z' - elif daemon_type == 'loki': - mounts[os.path.join(data_dir, 'etc/loki')] = '/etc/loki:Z' - mounts[os.path.join(data_dir, 'data')] = '/loki:Z' - elif daemon_type == 'promtail': - mounts[os.path.join(data_dir, 'etc/promtail')] = '/etc/promtail:Z' - mounts[log_dir] = '/var/log/ceph:z' - mounts[os.path.join(data_dir, 'data')] = '/promtail:Z' - elif daemon_type == 'node-exporter': - mounts[os.path.join(data_dir, 'etc/node-exporter')] = '/etc/node-exporter:Z' - mounts['/proc'] = '/host/proc:ro' - mounts['/sys'] = '/host/sys:ro' - mounts['/'] = '/rootfs:ro' - elif daemon_type == 'grafana': - mounts[os.path.join(data_dir, 'etc/grafana/grafana.ini')] = '/etc/grafana/grafana.ini:Z' - mounts[os.path.join(data_dir, 'etc/grafana/provisioning/datasources')] = '/etc/grafana/provisioning/datasources:Z' - mounts[os.path.join(data_dir, 'etc/grafana/certs')] = '/etc/grafana/certs:Z' - mounts[os.path.join(data_dir, 'data/grafana.db')] = '/var/lib/grafana/grafana.db:Z' - elif daemon_type == 'alertmanager': - mounts[os.path.join(data_dir, 'etc/alertmanager')] = '/etc/alertmanager:Z' + monitoring = Monitoring.create(ctx, ident) + mounts.update(monitoring.get_container_mounts(data_dir)) if daemon_type == NFSGanesha.daemon_type: data_dir = ident.data_dir(ctx.data_dir) -- 2.39.5