diff --git a/src/cloud_provider/aws/kubernetes/mod.rs b/src/cloud_provider/aws/kubernetes/mod.rs index c5bd41c3..5765fde3 100644 --- a/src/cloud_provider/aws/kubernetes/mod.rs +++ b/src/cloud_provider/aws/kubernetes/mod.rs @@ -24,7 +24,8 @@ use crate::cloud_provider::qovery::EngineLocation; use crate::cloud_provider::{kubernetes, CloudProvider}; use crate::cmd; use crate::cmd::kubectl::{ - kubectl_exec_api_custom_metrics, kubectl_exec_get_all_namespaces, kubectl_exec_scale_replicas, ScalingKind, + kubectl_exec_api_custom_metrics, kubectl_exec_get_all_namespaces, kubectl_exec_get_events, + kubectl_exec_scale_replicas, ScalingKind, }; use crate::cmd::structs::HelmChart; use crate::cmd::terraform::{terraform_exec, terraform_init_validate_plan_apply, terraform_init_validate_state_list}; @@ -958,7 +959,20 @@ impl<'a> Kubernetes for EKS<'a> { } fn on_create_error(&self) -> Result<(), EngineError> { + let kubeconfig_file = match self.config_file() { + Ok(x) => x.0, + Err(e) => { + error!("kubernetes cluster has just been deployed, but kubeconfig wasn't available, can't finish installation"); + return Err(e); + } + }; + let kubeconfig = PathBuf::from(&kubeconfig_file); + let environment_variables: Vec<(&str, &str)> = self.cloud_provider.credentials_environment_variables(); warn!("EKS.on_create_error() called for {}", self.name()); + match kubectl_exec_get_events(kubeconfig, None, environment_variables) { + Ok(_x) => (), + Err(_e) => (), + }; Err(self.engine_error( EngineErrorCause::Internal, format!("{} Kubernetes cluster failed on deployment", self.name()), diff --git a/src/cloud_provider/helm.rs b/src/cloud_provider/helm.rs index d95865fb..1c3b945d 100644 --- a/src/cloud_provider/helm.rs +++ b/src/cloud_provider/helm.rs @@ -214,7 +214,7 @@ pub trait HelmChart: Send { let environment_variables: Vec<(&str, &str)> = envs.iter().map(|x| (x.0.as_str(), x.1.as_str())).collect(); kubectl_exec_get_events( kubernetes_config, - get_chart_namespace(self.get_chart_info().namespace).as_str(), + Some(get_chart_namespace(self.get_chart_info().namespace).as_str()), environment_variables, )?; Ok(payload) diff --git a/src/cmd/kubectl.rs b/src/cmd/kubectl.rs index c4d30d57..c1afd616 100644 --- a/src/cmd/kubectl.rs +++ b/src/cmd/kubectl.rs @@ -842,7 +842,7 @@ where pub fn kubectl_exec_get_events
( kubernetes_config: P, - namespace: &str, + namespace: Option<&str>, envs: Vec<(&str, &str)>, ) -> Result<(), SimpleError> where @@ -851,7 +851,11 @@ where let mut environment_variables = envs; environment_variables.push((KUBECONFIG, kubernetes_config.as_ref().to_str().unwrap())); - let args = vec!["get", "event", "-n", namespace, "--sort-by='.lastTimestamp'"]; + let mut args = vec!["get", "event", "-A", "--sort-by='.lastTimestamp'"]; + if !namespace.unwrap().is_empty() { + args = vec!["get", "event", "-n", namespace.unwrap(), "--sort-by='.lastTimestamp'"]; + } + kubectl_exec_with_output( args, environment_variables,