An opinionated command line tool for managing multiple kubeconfigs.
kconf works by storing all kubeconfig information in a single file ($HOME/.kube/config
). This file is looked at by default when using kubectl
.
kconf add /path/to/kubeconfig.conf
or
kconf add /path/to/kubeconfig.conf --context-name=myContext
kconf rm myContext
kconf ls
kconf view myContext
kconf use myContext
kconf use myContext -n my-namespace
or
kconf ns my-namespace
I was previously managing my kubeconfigs using the $KUBECONFIG
environment variable. However, in order to automate this process, you have to do something like this in your rc files:
KUBECONFIG=$(find $HOME/.kube -type f -name '*.conf' 2> /dev/null | sed ':a;N;$!ba;s/\n/:/g')
... that gets you a $KUBECONFIG
variable with all your kubeconfigs separated by colons. The problem is that if you're frequently working with new/modified kubeconfigs, you'd have to trigger this command each time something changed.
With the kconf
command, there's no need for $KUBECONFIG
since kubectl
already looks at $HOME/.kube/config
by default. Additionally, as soon as you have a new kubeconfig, you can add
it pretty easily and quickly.
Check out the Issues section or specifically issues created by me