quick cleanup
All checks were successful
Run Check Script / check (pull_request) Successful in -42s

This commit is contained in:
Ian Letourneau 2025-08-02 11:10:50 -04:00
parent 9403581be5
commit 064f6d88ba

View File

@ -202,7 +202,7 @@ impl K8sPrometheusCRDAlertingInterpret {
} }
let _ = Command::new("helm") let _ = Command::new("helm")
.args(&[ .args([
"repo", "repo",
"add", "add",
"grafana-operator", "grafana-operator",
@ -213,13 +213,13 @@ impl K8sPrometheusCRDAlertingInterpret {
.unwrap(); .unwrap();
let _ = Command::new("helm") let _ = Command::new("helm")
.args(&["repo", "update"]) .args(["repo", "update"])
.output() .output()
.await .await
.unwrap(); .unwrap();
let output = Command::new("helm") let output = Command::new("helm")
.args(&[ .args([
"install", "install",
"grafana-operator", "grafana-operator",
"grafana-operator/grafana-operator", "grafana-operator/grafana-operator",
@ -243,30 +243,30 @@ impl K8sPrometheusCRDAlertingInterpret {
Ok(Outcome::success(format!( Ok(Outcome::success(format!(
"installed grafana operator in ns {}", "installed grafana operator in ns {}",
self.sender.namespace.clone().clone() self.sender.namespace.clone()
))) )))
} }
async fn install_prometheus(&self, client: &Arc<K8sClient>) -> Result<Outcome, InterpretError> { async fn install_prometheus(&self, client: &Arc<K8sClient>) -> Result<Outcome, InterpretError> {
debug!( debug!(
"installing crd-prometheuses in namespace {}", "installing crd-prometheuses in namespace {}",
self.sender.namespace.clone().clone() self.sender.namespace.clone()
); );
debug!("building role/rolebinding/serviceaccount for crd-prometheus"); debug!("building role/rolebinding/serviceaccount for crd-prometheus");
let rolename = format!("{}-prom", self.sender.namespace.clone().clone()); let rolename = format!("{}-prom", self.sender.namespace.clone());
let sa_name = format!("{}-prom-sa", self.sender.namespace.clone().clone()); let sa_name = format!("{}-prom-sa", self.sender.namespace.clone());
let role = build_prom_role(rolename.clone(), self.sender.namespace.clone().clone()); let role = build_prom_role(rolename.clone(), self.sender.namespace.clone());
let rolebinding = build_prom_rolebinding( let rolebinding = build_prom_rolebinding(
rolename.clone(), rolename.clone(),
self.sender.namespace.clone().clone(), self.sender.namespace.clone(),
sa_name.clone(), sa_name.clone(),
); );
let sa = build_prom_service_account(sa_name.clone(), self.sender.namespace.clone().clone()); let sa = build_prom_service_account(sa_name.clone(), self.sender.namespace.clone());
let prom_spec = PrometheusSpec { let prom_spec = PrometheusSpec {
alerting: Some(PrometheusSpecAlerting { alerting: Some(PrometheusSpecAlerting {
alertmanagers: Some(vec![AlertmanagerEndpoints { alertmanagers: Some(vec![AlertmanagerEndpoints {
name: Some(format!("alertmanager-operated")), name: Some(format!("alertmanager-operated")),
namespace: Some(format!("{}", self.sender.namespace.clone().clone())), namespace: Some(format!("{}", self.sender.namespace.clone())),
port: Some("web".into()), port: Some("web".into()),
scheme: Some("http".into()), scheme: Some("http".into()),
}]), }]),
@ -275,7 +275,7 @@ impl K8sPrometheusCRDAlertingInterpret {
service_monitor_namespace_selector: Some(LabelSelector { service_monitor_namespace_selector: Some(LabelSelector {
match_labels: BTreeMap::from([( match_labels: BTreeMap::from([(
"kubernetes.io/metadata.name".to_string(), "kubernetes.io/metadata.name".to_string(),
format!("{}", self.sender.namespace.clone().clone()), format!("{}", self.sender.namespace.clone()),
)]), )]),
match_expressions: vec![], match_expressions: vec![],
}), }),
@ -299,25 +299,25 @@ impl K8sPrometheusCRDAlertingInterpret {
rule_namespace_selector: Some(LabelSelector { rule_namespace_selector: Some(LabelSelector {
match_labels: BTreeMap::from([( match_labels: BTreeMap::from([(
"kubernetes.io/metadata.name".to_string(), "kubernetes.io/metadata.name".to_string(),
format!("{}", self.sender.namespace.clone().clone()), format!("{}", self.sender.namespace.clone()),
)]), )]),
match_expressions: vec![], match_expressions: vec![],
}), }),
}; };
let prom = Prometheus { let prom = Prometheus {
metadata: ObjectMeta { metadata: ObjectMeta {
name: Some(self.sender.namespace.clone().clone()), name: Some(self.sender.namespace.clone()),
labels: Some(std::collections::BTreeMap::from([ labels: Some(std::collections::BTreeMap::from([
("alertmanagerConfig".to_string(), "enabled".to_string()), ("alertmanagerConfig".to_string(), "enabled".to_string()),
("client".to_string(), "prometheus".to_string()), ("client".to_string(), "prometheus".to_string()),
])), ])),
namespace: Some(self.sender.namespace.clone().clone()), namespace: Some(self.sender.namespace.clone()),
..Default::default() ..Default::default()
}, },
spec: prom_spec, spec: prom_spec,
}; };
client client
.apply(&role, Some(&self.sender.namespace.clone().clone())) .apply(&role, Some(&self.sender.namespace.clone()))
.await .await
.map_err(|e| InterpretError::new(e.to_string()))?; .map_err(|e| InterpretError::new(e.to_string()))?;
info!( info!(
@ -326,7 +326,7 @@ impl K8sPrometheusCRDAlertingInterpret {
role.metadata.namespace.unwrap() role.metadata.namespace.unwrap()
); );
client client
.apply(&rolebinding, Some(&self.sender.namespace.clone().clone())) .apply(&rolebinding, Some(&self.sender.namespace.clone()))
.await .await
.map_err(|e| InterpretError::new(e.to_string()))?; .map_err(|e| InterpretError::new(e.to_string()))?;
info!( info!(
@ -335,7 +335,7 @@ impl K8sPrometheusCRDAlertingInterpret {
rolebinding.metadata.namespace.unwrap() rolebinding.metadata.namespace.unwrap()
); );
client client
.apply(&sa, Some(&self.sender.namespace.clone().clone())) .apply(&sa, Some(&self.sender.namespace.clone()))
.await .await
.map_err(|e| InterpretError::new(e.to_string()))?; .map_err(|e| InterpretError::new(e.to_string()))?;
info!( info!(
@ -344,7 +344,7 @@ impl K8sPrometheusCRDAlertingInterpret {
sa.metadata.namespace.unwrap() sa.metadata.namespace.unwrap()
); );
client client
.apply(&prom, Some(&self.sender.namespace.clone().clone())) .apply(&prom, Some(&self.sender.namespace.clone()))
.await .await
.map_err(|e| InterpretError::new(e.to_string()))?; .map_err(|e| InterpretError::new(e.to_string()))?;
info!( info!(
@ -365,18 +365,18 @@ impl K8sPrometheusCRDAlertingInterpret {
) -> Result<Outcome, InterpretError> { ) -> Result<Outcome, InterpretError> {
let am = Alertmanager { let am = Alertmanager {
metadata: ObjectMeta { metadata: ObjectMeta {
name: Some(self.sender.namespace.clone().clone()), name: Some(self.sender.namespace.clone()),
labels: Some(std::collections::BTreeMap::from([( labels: Some(std::collections::BTreeMap::from([(
"alertmanagerConfig".to_string(), "alertmanagerConfig".to_string(),
"enabled".to_string(), "enabled".to_string(),
)])), )])),
namespace: Some(self.sender.namespace.clone().clone()), namespace: Some(self.sender.namespace.clone()),
..Default::default() ..Default::default()
}, },
spec: AlertmanagerSpec::default(), spec: AlertmanagerSpec::default(),
}; };
client client
.apply(&am, Some(&self.sender.namespace.clone().clone())) .apply(&am, Some(&self.sender.namespace.clone()))
.await .await
.map_err(|e| InterpretError::new(e.to_string()))?; .map_err(|e| InterpretError::new(e.to_string()))?;
Ok(Outcome::success(format!( Ok(Outcome::success(format!(
@ -391,7 +391,7 @@ impl K8sPrometheusCRDAlertingInterpret {
) -> Result<Outcome, InterpretError> { ) -> Result<Outcome, InterpretError> {
let default_service_monitor = ServiceMonitor { let default_service_monitor = ServiceMonitor {
metadata: ObjectMeta { metadata: ObjectMeta {
name: Some(self.sender.namespace.clone().clone()), name: Some(self.sender.namespace.clone()),
labels: Some(std::collections::BTreeMap::from([ labels: Some(std::collections::BTreeMap::from([
("alertmanagerConfig".to_string(), "enabled".to_string()), ("alertmanagerConfig".to_string(), "enabled".to_string()),
("client".to_string(), "prometheus".to_string()), ("client".to_string(), "prometheus".to_string()),
@ -400,7 +400,7 @@ impl K8sPrometheusCRDAlertingInterpret {
"kube-state-metrics".to_string(), "kube-state-metrics".to_string(),
), ),
])), ])),
namespace: Some(self.sender.namespace.clone().clone()), namespace: Some(self.sender.namespace.clone()),
..Default::default() ..Default::default()
}, },
spec: ServiceMonitorSpec::default(), spec: ServiceMonitorSpec::default(),
@ -408,7 +408,7 @@ impl K8sPrometheusCRDAlertingInterpret {
monitors.push(default_service_monitor); monitors.push(default_service_monitor);
for monitor in monitors.iter() { for monitor in monitors.iter() {
client client
.apply(monitor, Some(&self.sender.namespace.clone().clone())) .apply(monitor, Some(&self.sender.namespace.clone()))
.await .await
.map_err(|e| InterpretError::new(e.to_string()))?; .map_err(|e| InterpretError::new(e.to_string()))?;
} }
@ -434,12 +434,12 @@ impl K8sPrometheusCRDAlertingInterpret {
prom_rule_spec.groups.push(default_rules_group); prom_rule_spec.groups.push(default_rules_group);
let prom_rules = PrometheusRule { let prom_rules = PrometheusRule {
metadata: ObjectMeta { metadata: ObjectMeta {
name: Some(self.sender.namespace.clone().clone()), name: Some(self.sender.namespace.clone()),
labels: Some(std::collections::BTreeMap::from([ labels: Some(std::collections::BTreeMap::from([
("alertmanagerConfig".to_string(), "enabled".to_string()), ("alertmanagerConfig".to_string(), "enabled".to_string()),
("role".to_string(), "prometheus-rule".to_string()), ("role".to_string(), "prometheus-rule".to_string()),
])), ])),
namespace: Some(self.sender.namespace.clone().clone()), namespace: Some(self.sender.namespace.clone()),
..Default::default() ..Default::default()
}, },
spec: prom_rule_spec, spec: prom_rule_spec,
@ -475,7 +475,7 @@ impl K8sPrometheusCRDAlertingInterpret {
}; };
let mut json_data = BTreeMap::new(); let mut json_data = BTreeMap::new();
json_data.insert("timeInterval".to_string(), "5s".to_string()); json_data.insert("timeInterval".to_string(), "5s".to_string());
let namespace = self.sender.namespace.clone().clone(); let namespace = self.sender.namespace.clone();
let json = build_default_dashboard(&namespace); let json = build_default_dashboard(&namespace);
@ -483,9 +483,9 @@ impl K8sPrometheusCRDAlertingInterpret {
metadata: ObjectMeta { metadata: ObjectMeta {
name: Some(format!( name: Some(format!(
"grafana-datasource-{}", "grafana-datasource-{}",
self.sender.namespace.clone().clone() self.sender.namespace.clone()
)), )),
namespace: Some(self.sender.namespace.clone().clone()), namespace: Some(self.sender.namespace.clone()),
..Default::default() ..Default::default()
}, },
spec: GrafanaDatasourceSpec { spec: GrafanaDatasourceSpec {
@ -496,11 +496,11 @@ impl K8sPrometheusCRDAlertingInterpret {
database: Some("prometheus".to_string()), database: Some("prometheus".to_string()),
json_data: Some(json_data), json_data: Some(json_data),
//this is fragile //this is fragile
name: format!("prometheus-{}-0", self.sender.namespace.clone().clone()), name: format!("prometheus-{}-0", self.sender.namespace.clone()),
r#type: "prometheus".to_string(), r#type: "prometheus".to_string(),
url: format!( url: format!(
"http://prometheus-operated.{}.svc.cluster.local:9090", "http://prometheus-operated.{}.svc.cluster.local:9090",
self.sender.namespace.clone().clone() self.sender.namespace.clone()
), ),
}, },
}, },
@ -515,9 +515,9 @@ impl K8sPrometheusCRDAlertingInterpret {
metadata: ObjectMeta { metadata: ObjectMeta {
name: Some(format!( name: Some(format!(
"grafana-dashboard-{}", "grafana-dashboard-{}",
self.sender.namespace.clone().clone() self.sender.namespace.clone()
)), )),
namespace: Some(self.sender.namespace.clone().clone()), namespace: Some(self.sender.namespace.clone()),
..Default::default() ..Default::default()
}, },
spec: GrafanaDashboardSpec { spec: GrafanaDashboardSpec {
@ -534,8 +534,8 @@ impl K8sPrometheusCRDAlertingInterpret {
let grafana = Grafana { let grafana = Grafana {
metadata: ObjectMeta { metadata: ObjectMeta {
name: Some(format!("grafana-{}", self.sender.namespace.clone().clone())), name: Some(format!("grafana-{}", self.sender.namespace.clone())),
namespace: Some(self.sender.namespace.clone().clone()), namespace: Some(self.sender.namespace.clone()),
labels: Some(label.clone()), labels: Some(label.clone()),
..Default::default() ..Default::default()
}, },