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..06b68c8faf4 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), }