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