Skip to content

Instantly share code, notes, and snippets.

@dudash
Last active April 13, 2021 20:46
Show Gist options
  • Save dudash/3dc2a593bfb0f2a1b4d2125fe89ae7d7 to your computer and use it in GitHub Desktop.
Save dudash/3dc2a593bfb0f2a1b4d2125fe89ae7d7 to your computer and use it in GitHub Desktop.
Flip between versions of the Kubernetes CLI easily
#!/bin/bash
# Simple script to help configuring which kubectl CLI to use when you
# have a need to keep multiple versions and switch between them.
# Install and notes:
# 1. put this in /usr/local/bin and chmod +x
# 2. keep all the versions of kubectl in the /Applications directory
# 3. name kubectl executables with corresponding version - e.g. /Applications/kubectl-1.19.0
# Ref - for where to get versions of kubectl
# https://kubernetes.io/docs/tasks/tools/install-kubectl/
prompt="Please select an kubectl version:"
options=( $(ls /Applications/kubectl* | xargs -0) )
PS3="$prompt "
select opt in "${options[@]}" "Quit" ; do
if (( REPLY == 1 + ${#options[@]} )) ; then
exit
elif (( REPLY > 0 && REPLY <= ${#options[@]} )) ; then
echo "You picked $REPLY"
break
else
echo "Invalid option. Try another one."
fi
done
echo "Switching kubectl to version at $opt"
ln -sf $opt /usr/local/bin/kubectl
kubectl version
if test -z $BASH_VERSION; then
source <(kubectl completion bash)
echo "Autocompletion ON (bash)"
elif test -z $ZSH_VERSION; then
source <(kubectl completion zsh)
echo "Autocompletion ON (zsh)"
fi
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment