Managing Multiple Kube Config Files:
TLDR:
# Make the folder for the kubeconfigs
mkdir -p $HOME/.kube/contexts
# Grab ctx and put it in $PATH
sudo curl -sSLk https://hireryan.today/wp-content/uploads/2021/11/kubectx -o /usr/local/bin/ctx
sudo chmod 700 /usr/local/bin/ctx
sudo chown $USER /usr/local/bin/ctx
# Add this to your bash or zsh rc
KUBECONFIG=""
BASE_PATH=$HOME/.kube/contexts
for i in `\ls $BASE_PATH`; do
export KUBECONFIG="$KUBECONFIG:$BASE_PATH/$i"
done
# Or this. This one is made to remove cert data from from both aws and rancher generated configs. Made for mac, should be portable though.
KUBECONFIG=""
BASE_PATH=$HOME/.kube/contexts
for i in `\ls $BASE_PATH | grep yaml$`; do
sed -i.bak '/certificate-authority/d' "$BASE_PATH/$i"
sed -i.bak '/\\$/,/"/g' "$BASE_PATH/$i"
grep certificate-authority "$BASE_PATH/$i" >/dev/null
if ! [ $? = 0 ]; then
grep insecure-skip-tls-verify "$BASE_PATH/$i" >/dev/null
if ! [ $? = 0 ]; then
sed -i.bak '/cluster:/s/.*/&\
insecure-skip-tls-verify: true/' "$BASE_PATH/$i"
fi
fi
export KUBECONFIG="$KUBECONFIG:$BASE_PATH/$i"
rm -f "$BASE_PATH/$i.bak"
done
# optional - fzf for easy select
brew install fzf
# To install useful key bindings and fuzzy completion:
$(brew --prefix)/opt/fzf/install
I’m pretty sure I stole the core idea of this from someone else’s blog, but something didn’t work, or it was too convoluted.
The last shell based version of kucectx was
https://github.com/ahmetb/kubectx/releases/tag/v0.8.0
Or here as a non zip version:
https://hireryan.today/wp-content/uploads/2021/11/kubens
https://hireryan.today/wp-content/uploads/2021/11/kubectx


