forked from NationTech/harmony
		
	
		
			
				
	
	
		
			51 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Rust
		
	
	
	
	
	
			
		
		
	
	
			51 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Rust
		
	
	
	
	
	
| use harmony::{
 | |
|     inventory::Inventory,
 | |
|     modules::{
 | |
|         application::{
 | |
|             ApplicationScore, RustWebFramework, RustWebapp,
 | |
|             features::{PackagingDeployment, rhob_monitoring::Monitoring},
 | |
|         },
 | |
|         monitoring::alert_channel::discord_alert_channel::DiscordWebhook,
 | |
|     },
 | |
|     topology::K8sAnywhereTopology,
 | |
| };
 | |
| use harmony_macros::hurl;
 | |
| use std::{path::PathBuf, sync::Arc};
 | |
| 
 | |
| #[tokio::main]
 | |
| async fn main() {
 | |
|     let application = Arc::new(RustWebapp {
 | |
|         name: "tryrust".to_string(),
 | |
|         project_root: PathBuf::from(".."),
 | |
|         framework: Some(RustWebFramework::Leptos),
 | |
|         service_port: 8080,
 | |
|     });
 | |
| 
 | |
|     let discord_webhook = DiscordWebhook {
 | |
|         name: "harmony_demo".to_string(),
 | |
|         url: hurl!("http://not_a_url.com"),
 | |
|     };
 | |
| 
 | |
|     let app = ApplicationScore {
 | |
|         features: vec![
 | |
|             Box::new(PackagingDeployment {
 | |
|                 application: application.clone(),
 | |
|             }),
 | |
|             Box::new(Monitoring {
 | |
|                 application: application.clone(),
 | |
|                 alert_receiver: vec![Box::new(discord_webhook)],
 | |
|             }),
 | |
|         ],
 | |
|         application,
 | |
|     };
 | |
| 
 | |
|     harmony_cli::run(
 | |
|         Inventory::autoload(),
 | |
|         K8sAnywhereTopology::from_env(),
 | |
|         vec![Box::new(app)],
 | |
|         None,
 | |
|     )
 | |
|     .await
 | |
|     .unwrap();
 | |
| }
 |