forked from NationTech/harmony
		
	feat: Initialize k8s tenant properly
This commit is contained in:
		
							parent
							
								
									8e472e4c65
								
							
						
					
					
						commit
						14fc4345c1
					
				| @ -1,7 +1,7 @@ | ||||
| use std::time::SystemTime; | ||||
| use std::time::UNIX_EPOCH; | ||||
| use rand::distr::Alphanumeric; | ||||
| use rand::distr::SampleString; | ||||
| use std::time::SystemTime; | ||||
| use std::time::UNIX_EPOCH; | ||||
| 
 | ||||
| use serde::{Deserialize, Serialize}; | ||||
| 
 | ||||
|  | ||||
| @ -170,6 +170,22 @@ impl K8sAnywhereTopology { | ||||
|         Ok(Some(state)) | ||||
|     } | ||||
| 
 | ||||
|     async fn ensure_k8s_tenant_manager(&self) -> Result<(), String> { | ||||
|         if let Some(_) = self.tenant_manager.get() { | ||||
|             return Ok(()); | ||||
|         } | ||||
| 
 | ||||
|         self.tenant_manager | ||||
|             .get_or_try_init(async || -> Result<K8sTenantManager, String> { | ||||
|                 let k8s_client = self.k8s_client().await?; | ||||
|                 Ok(K8sTenantManager::new(k8s_client)) | ||||
|             }) | ||||
|             .await | ||||
|             .unwrap(); | ||||
| 
 | ||||
|         Ok(()) | ||||
|     } | ||||
| 
 | ||||
|     fn get_k8s_tenant_manager(&self) -> Result<&K8sTenantManager, ExecutorError> { | ||||
|         match self.tenant_manager.get() { | ||||
|             Some(t) => Ok(t), | ||||
| @ -217,6 +233,10 @@ impl Topology for K8sAnywhereTopology { | ||||
|             "No K8s client could be found or installed".to_string(), | ||||
|         ))?; | ||||
| 
 | ||||
|         self.ensure_k8s_tenant_manager() | ||||
|             .await | ||||
|             .map_err(|e| InterpretError::new(e))?; | ||||
| 
 | ||||
|         match self.is_helm_available() { | ||||
|             Ok(()) => Ok(Outcome::success(format!( | ||||
|                 "{} + helm available", | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user