forked from NationTech/harmony
- Refactor k3d cluster management to explicitly start the cluster. - Introduce `start_cluster` function to ensure cluster is running before operations. - Improve error handling and logging during cluster startup. - Update `create_cluster` and other related functions to utilize the new startup mechanism. - Enhance reliability and prevent potential issues caused by an uninitialized cluster. - Add `run_k3d_command` to handle k3d commands with logging and error handling.
31 lines
928 B
Rust
31 lines
928 B
Rust
use harmony::{
|
|
data::Version,
|
|
inventory::Inventory,
|
|
maestro::Maestro,
|
|
modules::lamp::{LAMPConfig, LAMPScore},
|
|
topology::{K8sAnywhereTopology, Url},
|
|
};
|
|
|
|
#[tokio::main]
|
|
async fn main() {
|
|
// let _ = env_logger::Builder::from_default_env().filter_level(log::LevelFilter::Info).try_init();
|
|
let lamp_stack = LAMPScore {
|
|
name: "harmony-lamp-demo".to_string(),
|
|
domain: Url::Url(url::Url::parse("https://lampdemo.harmony.nationtech.io").unwrap()),
|
|
php_version: Version::from("8.4.4").unwrap(),
|
|
config: LAMPConfig {
|
|
project_root: "./php".into(),
|
|
..Default::default()
|
|
},
|
|
};
|
|
|
|
let mut maestro = Maestro::<K8sAnywhereTopology>::initialize(
|
|
Inventory::autoload(),
|
|
K8sAnywhereTopology::new(),
|
|
)
|
|
.await
|
|
.unwrap();
|
|
maestro.register_all(vec![Box::new(lamp_stack)]);
|
|
harmony_tui::init(maestro).await.unwrap();
|
|
}
|