New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
load kubeconfig from custom environment variables #1097
Conversation
Signed-off-by: goenning <me@goenning.net>
Codecov Report
Additional details and impacted files@@ Coverage Diff @@
## main #1097 +/- ##
==========================================
+ Coverage 72.39% 72.64% +0.24%
==========================================
Files 65 65
Lines 4774 4821 +47
==========================================
+ Hits 3456 3502 +46
- Misses 1318 1319 +1
|
match std::env::var_os(KUBECONFIG) { | ||
Self::from_custom_env(KUBECONFIG) | ||
} | ||
|
||
/// Create `Kubeconfig` from a given environment variable. | ||
/// Supports list of files to be merged. | ||
/// | ||
/// # Panics | ||
/// | ||
/// Panics if the environment variable value contains the NUL character. | ||
pub fn from_custom_env(env_name: &str) -> Result<Option<Self>, KubeconfigError> { | ||
match std::env::var_os(env_name) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As much as it feels like a rare use-case to have people use different evars, this way of exporting two sides of the functionality in from_env
that you have here, is probably the best split.
Tried to think of a few other splits where ::from_env
would parse the KUBECONFIG first, and maybe splits the paths, then maybe collects (and maybe even reads the files), before then calling a merger fn; but none of those options feel like they are actually giving us a useful split IO/non-IO split without making a very ugly interface.
That said, I'm kind of more positive on exporting the merge
fn here than to have kube
read a different non-standard evar as that feels very unexpected for kube to do (and something i expect to be an extremely rare use-case - unless I am missing something).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
100% understandable, it's a rare use-case indeed. Exporting merge would also work for me, so I created this other PR #1100
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Appreciate it. Have merged that* pr and closed this PR. It's nicer to have fns that export documented parts of kubernetes algorithms be public.
Replaced by #1100 |
Signed-off-by: goenning me@goenning.net
Motivation
I'd like to support loading kubeconfig files from a non-standard environment variable name.
Solution
I first tried to copy this function over to my project, but Kubeconfig's merge fn is private. We could make it public, but I thought it might be beneficial to make have this small additional function on kube-rs