diff --git a/harmony/src/domain/topology/k8s_anywhere.rs b/harmony/src/domain/topology/k8s_anywhere.rs index e6c37ea..758198f 100644 --- a/harmony/src/domain/topology/k8s_anywhere.rs +++ b/harmony/src/domain/topology/k8s_anywhere.rs @@ -48,10 +48,10 @@ struct K8sState { } #[derive(Debug, Clone)] -pub enum K8sFlavour { - Okd, - K3d, - K8s, +pub enum KubernetesDistribution { + OpenshiftFamily, + K3sFamily, + Default, } #[derive(Debug, Clone)] @@ -64,7 +64,7 @@ enum K8sSource { pub struct K8sAnywhereTopology { k8s_state: Arc>>, tenant_manager: Arc>, - flavour: Arc>, + flavour: Arc>, config: Arc, } @@ -184,7 +184,7 @@ impl K8sAnywhereTopology { } } - pub async fn get_k8s_flavour(&self) -> K8sFlavour { + pub async fn get_k8s_distribution(&self) -> KubernetesDistribution { self.flavour .get_or_try_init(async || { let client = self.k8s_client().await.unwrap(); @@ -197,22 +197,22 @@ impl K8sAnywhereTopology { PreparationError::new(format!("Could not get server version: {}", e)) })?; - let rules: &[&dyn Fn() -> Option] = &[ + let rules: &[&dyn Fn() -> Option] = &[ // OpenShift / OKD &|| { discovery .groups() - .any(|g| g.name().ends_with("openshift.io")) - .then_some(K8sFlavour::Okd) + .any(|g| g.name() == "project.openshift.io") + .then_some(KubernetesDistribution::OpenshiftFamily) }, // K3d / K3s &|| { version .git_version .contains("k3s") - .then_some(K8sFlavour::K3d) + .then_some(KubernetesDistribution::K3sFamily) }, - // Vanilla Kubernetes + // Fallback Kubernetes K8s &|| { if !discovery .groups() @@ -220,7 +220,7 @@ impl K8sAnywhereTopology { && !version.git_version.contains("k3s") && !version.git_version.contains("k3d") { - Some(K8sFlavour::K8s) + Some(KubernetesDistribution::Default) } else { None } @@ -228,7 +228,9 @@ impl K8sAnywhereTopology { ]; rules.iter().find_map(|rule| rule()).ok_or_else(|| { - PreparationError::new("Unknown Kubernetes cluster flavour".to_string()) + PreparationError::new( + "Unable to detect Kubernetes cluster distribution".to_string(), + ) }) }) .await