forked from NationTech/harmony
		
	
		
			
				
	
	
		
			49 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Rust
		
	
	
	
	
	
			
		
		
	
	
			49 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Rust
		
	
	
	
	
	
| use std::{path::PathBuf, sync::Arc};
 | |
| 
 | |
| use harmony::{
 | |
|     inventory::Inventory,
 | |
|     modules::{
 | |
|         application::{
 | |
|             ApplicationScore, RustWebFramework, RustWebapp, features::rhob_monitoring::Monitoring,
 | |
|         },
 | |
|         monitoring::alert_channel::discord_alert_channel::DiscordWebhook,
 | |
|     },
 | |
|     topology::K8sAnywhereTopology,
 | |
| };
 | |
| use harmony_types::net::Url;
 | |
| 
 | |
| #[tokio::main]
 | |
| async fn main() {
 | |
|     let application = Arc::new(RustWebapp {
 | |
|         name: "test-rhob-monitoring".to_string(),
 | |
|         project_root: PathBuf::from("./webapp"), // Relative from 'harmony-path' param
 | |
|         framework: Some(RustWebFramework::Leptos),
 | |
|         service_port: 3000,
 | |
|     });
 | |
| 
 | |
|     let discord_receiver = DiscordWebhook {
 | |
|         name: "test-discord".to_string(),
 | |
|         url: Url::Url(url::Url::parse("https://discord.doesnt.exist.com").unwrap()),
 | |
|     };
 | |
| 
 | |
|     let app = ApplicationScore {
 | |
|         features: vec![
 | |
|             Box::new(Monitoring {
 | |
|                 application: application.clone(),
 | |
|                 alert_receiver: vec![Box::new(discord_receiver)],
 | |
|             }),
 | |
|             // TODO add backups, multisite ha, etc
 | |
|         ],
 | |
|         application,
 | |
|     };
 | |
| 
 | |
|     harmony_cli::run(
 | |
|         Inventory::autoload(),
 | |
|         K8sAnywhereTopology::from_env(),
 | |
|         vec![Box::new(app)],
 | |
|         None,
 | |
|     )
 | |
|     .await
 | |
|     .unwrap();
 | |
| }
 |