Skip to content

Instantly share code, notes, and snippets.

@sheeeng
Forked from GusAntoniassi/README.md
Last active January 27, 2024 19:33
Show Gist options
  • Save sheeeng/18dbfd2c14d43431ba3406e768945185 to your computer and use it in GitHub Desktop.
Save sheeeng/18dbfd2c14d43431ba3406e768945185 to your computer and use it in GitHub Desktop.
Configure autocompletion to kubectl with zsh

kubectl with ZSH (oh-my-zsh)

How to configure

Use the following commands to add the kubectl autocomplete to zsh:

mkdir -p ~/.oh-my-zsh/custom/plugins/kubectl-autocomplete/
kubectl completion zsh > ~/.oh-my-zsh/custom/plugins/kubectl-autocomplete/kubectl-autocomplete.plugin.zsh

After that, edit your ~/.zshrc to include the plugin kubectl-autocomplete, like so:

# ~/.zshrc
# ...
plugins=(kubectl-autocomplete)

Optional: kubens and kubectx

Kubectx is a great plugin for easily switching namespaces and contexts.

You can install it with these commands:

curl --location --remote-name https://raw.githubusercontent.com/ahmetb/kubectx/master/kubectx
curl --location --remote-name https://raw.githubusercontent.com/ahmetb/kubectx/master/kubens

chmod +x ./{kubectx,kubens}
mv ./{kubectx,kubens} ~/.local/bin/

mkdir --parents ~/.oh-my-zsh/completions
curl --location https://raw.githubusercontent.com/ahmetb/kubectx/master/completion/kubectx.zsh --output ~/.oh-my-zsh/completions/_kubectx.zsh
curl --location https://raw.githubusercontent.com/ahmetb/kubectx/master/completion/kubens.zsh --output ~/.oh-my-zsh/completions/_kubens.zsh

echo "fpath=($ZSH/custom/completions $fpath)" >> ~/.zshrc

How to use it

Press tab after running the commands and you should get suggestions for the output

kubectl g<TAB>
kubectl get p<TAB>

kubens <TAB>
kubectx <TAB>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment