forked from NationTech/harmony
47 lines
1.4 KiB
Rust
47 lines
1.4 KiB
Rust
use std::{path::PathBuf, sync::Arc};
|
|
|
|
use harmony::{
|
|
inventory::Inventory,
|
|
maestro::Maestro,
|
|
modules::application::{
|
|
features::{ContinuousDelivery, Monitoring}, ApplicationScore, RustWebFramework, RustWebapp
|
|
},
|
|
topology::{K8sAnywhereTopology, Url},
|
|
};
|
|
|
|
#[tokio::main]
|
|
async fn main() {
|
|
env_logger::init();
|
|
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 app = ApplicationScore {
|
|
// features: vec![
|
|
// Box::new(ContinuousDelivery {
|
|
// application: application.clone(),
|
|
// }),
|
|
// Box::new(Monitoring {}),
|
|
// // TODO add monitoring, backups, multisite ha, etc
|
|
// ],
|
|
// application,
|
|
// };
|
|
let app = ApplicationScore {
|
|
features: vec![
|
|
Box::new(Monitoring {}),
|
|
// TODO add monitoring, backups, multisite ha, etc
|
|
],
|
|
application,
|
|
};
|
|
|
|
let topology = K8sAnywhereTopology::from_env();
|
|
let mut maestro = Maestro::initialize(Inventory::autoload(), topology)
|
|
.await
|
|
.unwrap();
|
|
maestro.register_all(vec![Box::new(app)]);
|
|
harmony_cli::init(maestro, None).await.unwrap();
|
|
}
|