feat: K8s apply function now correctly emulates kubectl apply behavior by either creating or updating resources #55
| @ -2,7 +2,7 @@ use derive_new::new; | ||||
| use k8s_openapi::{ClusterResourceScope, NamespaceResourceScope}; | ||||
| use kube::{ | ||||
|     Api, Client, Config, Error, Resource, | ||||
|     api::{Patch, PatchParams, PostParams}, | ||||
|     api::{Patch, PatchParams}, | ||||
|     config::{KubeConfigOptions, Kubeconfig}, | ||||
| }; | ||||
| use log::{debug, error, trace}; | ||||
| @ -36,7 +36,8 @@ impl K8sClient { | ||||
|         ); | ||||
|         trace!("{:#?}", serde_json::to_string(resource)); | ||||
| 
 | ||||
|         let api: Api<K> = <<K as Resource>::Scope as ApplyStrategy<K>>::get_api(&self.client, namespace); | ||||
|         let api: Api<K> = | ||||
|             <<K as Resource>::Scope as ApplyStrategy<K>>::get_api(&self.client, namespace); | ||||
|         // api.create(&PostParams::default(), &resource).await
 | ||||
|         let patch_params = PatchParams::apply("harmony"); | ||||
|         let name = resource | ||||
|  | ||||
| @ -1,4 +1,4 @@ | ||||
| use std::{io::Error, process::Command, sync::Arc}; | ||||
| use std::{process::Command, sync::Arc}; | ||||
| 
 | ||||
| use async_trait::async_trait; | ||||
| use inquire::Confirm; | ||||
| @ -25,7 +25,7 @@ use super::{ | ||||
| 
 | ||||
| struct K8sState { | ||||
|     client: Arc<K8sClient>, | ||||
|     source: K8sSource, | ||||
|     _source: K8sSource, | ||||
|     message: String, | ||||
| } | ||||
| 
 | ||||
| @ -122,7 +122,7 @@ impl K8sAnywhereTopology { | ||||
|                 Some(client) => { | ||||
|                     return Ok(Some(K8sState { | ||||
|                         client: Arc::new(client), | ||||
|                         source: K8sSource::Kubeconfig, | ||||
|                         _source: K8sSource::Kubeconfig, | ||||
|                         message: format!("Loaded k8s client from kubeconfig {kubeconfig}"), | ||||
|                     })); | ||||
|                 } | ||||
| @ -162,7 +162,7 @@ impl K8sAnywhereTopology { | ||||
|         let state = match k3d.get_client().await { | ||||
|             Ok(client) => K8sState { | ||||
|                 client: Arc::new(K8sClient::new(client)), | ||||
|                 source: K8sSource::LocalK3d, | ||||
|                 _source: K8sSource::LocalK3d, | ||||
|                 message: "Successfully installed K3D cluster and acquired client".to_string(), | ||||
|             }, | ||||
|             Err(_) => todo!(), | ||||
|  | ||||
| @ -1,7 +1,6 @@ | ||||
| use async_trait::async_trait; | ||||
| 
 | ||||
| use std::fmt::Debug; | ||||
| use url::Url; | ||||
| 
 | ||||
| use crate::interpret::InterpretError; | ||||
| 
 | ||||
|  | ||||
| @ -3,12 +3,9 @@ use std::sync::Arc; | ||||
| use crate::{data::Id, executors::ExecutorError, topology::k8s::K8sClient}; | ||||
| use async_trait::async_trait; | ||||
| use derive_new::new; | ||||
| use k8s_openapi::{ | ||||
|     NamespaceResourceScope, | ||||
|     api::{ | ||||
| use k8s_openapi::api::{ | ||||
|     core::v1::{Namespace, ResourceQuota}, | ||||
|     networking::v1::NetworkPolicy, | ||||
|     }, | ||||
| }; | ||||
| use kube::Resource; | ||||
| use serde::de::DeserializeOwned; | ||||
|  | ||||
| @ -311,7 +311,7 @@ impl<T: Topology + K8sclient + HelmCommand> Interpret<T> for HelmChartInterpretV | ||||
|         _inventory: &Inventory, | ||||
|         _topology: &T, | ||||
|     ) -> Result<Outcome, InterpretError> { | ||||
|         let ns = self | ||||
|         let _ns = self | ||||
|             .score | ||||
|             .chart | ||||
|             .namespace | ||||
| @ -339,7 +339,7 @@ impl<T: Topology + K8sclient + HelmCommand> Interpret<T> for HelmChartInterpretV | ||||
| 
 | ||||
|         let res = helm_executor.generate(); | ||||
| 
 | ||||
|         let output = match res { | ||||
|         let _output = match res { | ||||
|             Ok(output) => output, | ||||
|             Err(err) => return Err(InterpretError::new(err.to_string())), | ||||
|         }; | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user