This repository contains a script to generate hundreds of
convenient shell aliases for kubectl, so you no longer need to spell out every single
command and --flag over and over again.
An example shell alias created from command/flags permutation looks like:
alias ksysgdepwslowidel='kubectl --namespace=kube-system get deployment --watch --show-labels -o=wide -l'
Confused? Read on.
Some of the 800 generated aliases are:
alias k='kubectl'
alias kg='kubectl get'
alias kgpo='kubectl get pod'
alias ksysgpo='kubectl --namespace=kube-system get pod'
alias krm='kubectl delete'
alias krmf='kubectl delete -f'
alias krming='kubectl delete ingress'
alias krmingl='kubectl delete ingress -l'
alias krmingall='kubectl delete ingress --all-namespaces'
alias kgsvcoyaml='kubectl get service -o=yaml'
alias kgsvcwn='kubectl get service --watch --namespace'
alias kgsvcslwn='kubectl get service --show-labels --watch --namespace'
alias kgwf='kubectl get --watch -f'
...
See the full list.
You can directly download the .kubectl_aliases file
for bash/zsh or the .kubectl_aliases.fish file
for fish and save it to your $HOME directory.
Add the following to your .bashrc/.zshrc file:
[ -f ~/.kubectl_aliases ] && source ~/.kubectl_aliases
undefinedRecommendation: If you want to use GNU
watchcommand instead of
kubectl [...] --watch, run it like this:[ -f ~/.kubectl_aliases ] && source \ <(cat ~/.kubectl_aliases | sed -r 's/(kubectl.*) --watch/watch \1/g')
undefinedPrint the full command before running it: Add this to your .bashrc or
.zshrc file:
function kubectl() { echo "+ kubectl $@">&2; command kubectl $@; }
Add the following to your ~/.config/fish/config.fish file:
test -f ~/.kubectl_aliases.fish && source ~/.kubectl_aliases.fish
This actually adds the more powerful fish abbreviations
instead of aliases, so that pressing space shows the full command before execution.
undefinedRecommendation: If you want to use GNU
watchcommand instead of
kubectl [...] --watch, run it like this:test -f ~/.kubectl_aliases.fish && source \ (cat ~/.kubectl_aliases.fish | sed -r 's/(kubectl.*) --watch/watch \1/g' | psub)
k=kubectl
sys=--namespace kube-systemg=getd=describerm=deletea:apply -fak:apply -kk:kustomizeex: exec -i -tlo: logs -fed: editpo=pod, dep=deployment, ing=ingress,svc=service, cm=configmap, sec=secret,ns=namespace, no=nodeoyaml, ojson, owideundefinedall: --all or --all-namespaces depending on the commandsl: --show-labelsw=-w/--watchn=-n/--namespacef=-f/--filenamel=-l/--selectorThe script has only one optional argument, the shell to which the aliases will be generated. If not given, it assumes bash. Ex:
# Generate aliases for bash/zsh
python generate_aliases.py > .kubectl_aliases
# Generate abbr for fish
python generate_aliases.py fish > .kubectl_aliases.fish
undefinedDoesn’t this slow down my shell start up? Sourcing the file that contains
~500 aliases takes about 30-45 milliseconds in my shell (zsh). I don’t think
it’s a big deal for me. Measure it with echo $(($(date +%s%N)/1000000))
command yourself in your .bashrc/.zshrc.
undefinedCan I add more Kubernetes resource types to this? Please consider forking
this repo and adding the resource types you want. Not all resource types are
used by everyone, and adding more resource types slows down shell initialization
see above).
undefinedWhere can I find PowerShell aliases for kubectl? There’s a fork of this
here.
This is not an official Google project.
We use cookies
We use cookies to analyze traffic and improve your experience. You can accept or reject analytics cookies.