All checks were successful
Run Check Script / check (pull_request) Successful in 2m19s
working on implementing grafana crds via grafana operator need to link prometheus rules and alert managers in prometheus, testing it shows that prometheus isnt detecting them automatically
63 lines
2.0 KiB
Rust
63 lines
2.0 KiB
Rust
use std::{path::PathBuf, sync::Arc};
|
|
|
|
use harmony::{
|
|
inventory::Inventory,
|
|
maestro::Maestro,
|
|
modules::{
|
|
application::{
|
|
ApplicationScore, RustWebFramework, RustWebapp,
|
|
features::{ContinuousDelivery, Monitoring},
|
|
},
|
|
monitoring::alert_channel::{
|
|
discord_alert_channel::DiscordWebhook, webhook_receiver::WebhookReceiver,
|
|
},
|
|
},
|
|
topology::{K8sAnywhereTopology, Url},
|
|
};
|
|
|
|
#[tokio::main]
|
|
async fn main() {
|
|
env_logger::init();
|
|
|
|
let topology = K8sAnywhereTopology::from_env();
|
|
let mut maestro = Maestro::initialize(Inventory::autoload(), topology)
|
|
.await
|
|
.unwrap();
|
|
|
|
let application = Arc::new(RustWebapp {
|
|
name: "harmony-example-rust-webapp".to_string(),
|
|
domain: Url::Url(url::Url::parse("https://rustapp.harmony.example.com").unwrap()),
|
|
project_root: PathBuf::from("./examples/rust/webapp"),
|
|
framework: Some(RustWebFramework::Leptos),
|
|
});
|
|
|
|
let discord_receiver = DiscordWebhook {
|
|
name: "test-discord".to_string(),
|
|
url: Url::Url(url::Url::parse("https://discord.doesnt.exist.com").unwrap()),
|
|
};
|
|
|
|
let webhook_receiver = WebhookReceiver {
|
|
name: "sample-webhook-receiver".to_string(),
|
|
url: Url::Url(url::Url::parse("https://webhook-doesnt-exist.com").unwrap()),
|
|
};
|
|
|
|
let app = ApplicationScore {
|
|
features: vec![
|
|
Box::new(ContinuousDelivery {
|
|
application: application.clone(),
|
|
}), // TODO add monitoring, backups, multisite ha, etc
|
|
Box::new(Monitoring {
|
|
application: application.clone(),
|
|
alert_receiver: vec![Box::new(discord_receiver), Box::new(webhook_receiver)],
|
|
service_monitors: vec![],
|
|
alert_rules: vec![],
|
|
}),
|
|
// TODO add backups, multisite ha, etc
|
|
],
|
|
application,
|
|
};
|
|
|
|
maestro.register_all(vec![Box::new(app)]);
|
|
harmony_cli::init(maestro, None).await.unwrap();
|
|
}
|