feat: implement k3d cluster management

- Adds functionality to download, install, and manage k3d clusters.
- Includes methods for downloading the latest release, creating clusters, and verifying cluster existence.
- Implements `ensure_k3d_installed`, `get_latest_release_tag`, `download_latest_release`, `is_k3d_installed`, `verify_cluster_exists`, `create_cluster` and `create_kubernetes_client`.
- Provides a `get_client` method to access the Kubernetes client.
- Includes unit tests for download and installation.
- Adds handling for different operating systems.
- Improves error handling and logging.
- Introduces a `K3d` struct to encapsulate k3d cluster management logic.
- Adds the ability to specify the cluster name during K3d initialization.
This commit is contained in:
2025-04-24 17:36:01 -04:00
parent d307893f15
commit fbcd3e4f7f
12 changed files with 335 additions and 56 deletions

View File

@@ -99,7 +99,7 @@ pub async fn init<T: Topology + Send + Sync + 'static>(
return Err("Not compiled with interactive support".into());
}
env_logger::builder().init();
let _ = env_logger::builder().try_init();
let scores_vec = maestro_scores_filter(&maestro, args.all, args.filter, args.number);