From 7ebb6dc4f132e002ad91fb9c11939a6a41aa7228 Mon Sep 17 00:00:00 2001 From: Aviram Hassan Date: Thu, 22 Feb 2024 19:34:05 +0200 Subject: [PATCH] change kubeconfig path expansion to use env as well --- changelog.d/2262.changed.md | 1 + mirrord/kube/src/api/kubernetes.rs | 3 ++- mirrord/kube/src/error.rs | 3 +++ 3 files changed, 6 insertions(+), 1 deletion(-) create mode 100644 changelog.d/2262.changed.md diff --git a/changelog.d/2262.changed.md b/changelog.d/2262.changed.md new file mode 100644 index 00000000000..56e40698ae0 --- /dev/null +++ b/changelog.d/2262.changed.md @@ -0,0 +1 @@ +change kubeconfig path expansion to use env as well \ No newline at end of file diff --git a/mirrord/kube/src/api/kubernetes.rs b/mirrord/kube/src/api/kubernetes.rs index 9f457e54565..d4e78a35455 100644 --- a/mirrord/kube/src/api/kubernetes.rs +++ b/mirrord/kube/src/api/kubernetes.rs @@ -280,7 +280,8 @@ where }; let mut config = if let Some(kubeconfig) = kubeconfig { - let kubeconfig = shellexpand::tilde(&kubeconfig); + let kubeconfig = shellexpand::full(&kubeconfig) + .map_err(|e| KubeApiError::ConfigPathExpansionError(e.to_string()))?; let parsed_kube_config = Kubeconfig::read_from(kubeconfig.deref())?; Config::from_custom_kubeconfig(parsed_kube_config, &kube_config_opts).await? } else if kube_config_opts.context.is_some() { diff --git a/mirrord/kube/src/error.rs b/mirrord/kube/src/error.rs index f5c88a6132b..683a27b0b94 100644 --- a/mirrord/kube/src/error.rs +++ b/mirrord/kube/src/error.rs @@ -75,4 +75,7 @@ pub enum KubeApiError { #[error("Node {0:?} is too full with {1} pods")] NodePodLimitExceeded(String, usize), + + #[error("Path expansion for kubeconfig failed: {0}")] + ConfigPathExpansionError(String) }