Home

Awesome

kubectl-aliases

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.

Examples

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.

Installation

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.

Bash/Zsh

Add the following to your .bashrc/.zshrc file:

[ -f ~/.kubectl_aliases ] && source ~/.kubectl_aliases

Recommendation: If you want to use GNU watch command instead of kubectl [...] --watch, run it like this:

[ -f ~/.kubectl_aliases ] && source \
   <(cat ~/.kubectl_aliases | sed -r 's/(kubectl.*) --watch/watch \1/g')

Print the full command before running it: Add this to your .bashrc or .zshrc file:

function kubectl() { echo "+ kubectl $@">&2; command kubectl $@; }

Fish

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.

Recommendation: If you want to use GNU watch command 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)

Syntax explanation

Running the script

The 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

FAQ

Authors


This is not an official Google project.