diff --git a/harmony/src/modules/mod.rs b/harmony/src/modules/mod.rs index a578ada..9875302 100644 --- a/harmony/src/modules/mod.rs +++ b/harmony/src/modules/mod.rs @@ -10,3 +10,4 @@ pub mod load_balancer; pub mod okd; pub mod opnsense; pub mod tftp; +pub mod monitoring; diff --git a/harmony/src/modules/monitoring/mod.rs b/harmony/src/modules/monitoring/mod.rs new file mode 100644 index 0000000..dd2a70f --- /dev/null +++ b/harmony/src/modules/monitoring/mod.rs @@ -0,0 +1,3 @@ +mod monitoring_alerting; +mod resources; +pub use monitoring_alerting::*; diff --git a/harmony/src/modules/monitoring/monitoring_alerting.rs b/harmony/src/modules/monitoring/monitoring_alerting.rs new file mode 100644 index 0000000..fd7772b --- /dev/null +++ b/harmony/src/modules/monitoring/monitoring_alerting.rs @@ -0,0 +1,23 @@ +use serde::Serialize; + +use crate::{ + interpret::Interpret, maestro::Maestro, modules::helm::chart::HelmChartScore, score::Score, topology::{K8sclient, Topology} +}; + +#[derive(Debug, Clone, Serialize)] +pub struct MonitoringAlertingStackScore { + monitoring: HelmChartScore, + alerting: HelmChartScore, + alert_manager: HelmChartScore, +} + +impl Score for MonitoringAlertingStackScore { + + fn create_interpret(&self) -> Box> { + todo!() + } + + fn name(&self) -> String { + format!("Monitoring: {}\n, Alerting: {}\n, Alert Manager: {}\n", self.monitoring, self.alerting, self.alert_manager) + } +} diff --git a/harmony/src/modules/monitoring/resources/grafana.rs b/harmony/src/modules/monitoring/resources/grafana.rs new file mode 100644 index 0000000..87cc512 --- /dev/null +++ b/harmony/src/modules/monitoring/resources/grafana.rs @@ -0,0 +1,19 @@ +use std::str::FromStr; + +use non_blank_string_rs::NonBlankString; + +use crate::modules::helm::chart::HelmChartScore; + + +pub fn grafana_score(ns: &str) -> HelmChartScore { + HelmChartScore { + namespace: Some(NonBlankString::from_str(ns).unwrap()), + release_name: NonBlankString::from_str("es").unwrap(), + chart_name: NonBlankString::from_str( + "oci://registry-1.docker.io/bitnamicharts/grafana", + ) + .unwrap(), + chart_version: None, + values_overrides: None, + } +} diff --git a/harmony/src/modules/monitoring/resources/mod.rs b/harmony/src/modules/monitoring/resources/mod.rs new file mode 100644 index 0000000..4af87f6 --- /dev/null +++ b/harmony/src/modules/monitoring/resources/mod.rs @@ -0,0 +1,3 @@ +mod grafana; +mod prometheus; +mod prometheus_alert_manager; diff --git a/harmony/src/modules/monitoring/resources/prometheus.rs b/harmony/src/modules/monitoring/resources/prometheus.rs new file mode 100644 index 0000000..844e351 --- /dev/null +++ b/harmony/src/modules/monitoring/resources/prometheus.rs @@ -0,0 +1,19 @@ +use std::str::FromStr; + +use non_blank_string_rs::NonBlankString; + +use crate::modules::helm::chart::HelmChartScore; + + +pub fn elasticsearch_score(ns: &str) -> HelmChartScore { + HelmChartScore { + namespace: Some(NonBlankString::from_str(ns).unwrap()), + release_name: NonBlankString::from_str("es").unwrap(), + chart_name: NonBlankString::from_str( + todo()! + ) + .unwrap(), + chart_version: None, + values_overrides: None, + } +} diff --git a/harmony/src/modules/monitoring/resources/prometheus_alert_manager.rs b/harmony/src/modules/monitoring/resources/prometheus_alert_manager.rs new file mode 100644 index 0000000..4b2a583 --- /dev/null +++ b/harmony/src/modules/monitoring/resources/prometheus_alert_manager.rs @@ -0,0 +1,20 @@ +use std::str::FromStr; + +use non_blank_string_rs::NonBlankString; + +use crate::modules::helm::chart::HelmChartScore; + + +pub fn elasticsearch_score(ns: &str) -> HelmChartScore { + HelmChartScore { + namespace: Some(NonBlankString::from_str(ns).unwrap()), + release_name: NonBlankString::from_str("es").unwrap(), + chart_name: NonBlankString::from_str( + todo()! + ) + .unwrap(), + chart_version: None, + values_overrides: None, + } +} +