123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200 |
- if (( ! $+commands[kubectl] )); then
- return
- fi
- # If the completion file doesn't exist yet, we need to autoload it and
- # bind it to `kubectl`. Otherwise, compinit will have already done that.
- if [[ ! -f "$ZSH_CACHE_DIR/completions/_kubectl" ]]; then
- typeset -g -A _comps
- autoload -Uz _kubectl
- _comps[kubectl]=_kubectl
- fi
- kubectl completion zsh 2> /dev/null >| "$ZSH_CACHE_DIR/completions/_kubectl" &|
- # This command is used a LOT both below and in daily life
- alias k=kubectl
- # Execute a kubectl command against all namespaces
- alias kca='_kca(){ kubectl "$@" --all-namespaces; unset -f _kca; }; _kca'
- # Apply a YML file
- alias kaf='kubectl apply -f'
- # Drop into an interactive terminal on a container
- alias keti='kubectl exec -t -i'
- # Manage configuration quickly to switch contexts between local, dev ad staging.
- alias kcuc='kubectl config use-context'
- alias kcsc='kubectl config set-context'
- alias kcdc='kubectl config delete-context'
- alias kccc='kubectl config current-context'
- # List all contexts
- alias kcgc='kubectl config get-contexts'
- # General aliases
- alias kdel='kubectl delete'
- alias kdelf='kubectl delete -f'
- # Pod management.
- alias kgp='kubectl get pods'
- alias kgpl='kgp -l'
- alias kgpn='kgp -n'
- alias kgpsl='kubectl get pods --show-labels'
- alias kgpa='kubectl get pods --all-namespaces'
- alias kgpw='kgp --watch'
- alias kgpwide='kgp -o wide'
- alias kep='kubectl edit pods'
- alias kdp='kubectl describe pods'
- alias kdelp='kubectl delete pods'
- alias kgpall='kubectl get pods --all-namespaces -o wide'
- # Service management.
- alias kgs='kubectl get svc'
- alias kgsa='kubectl get svc --all-namespaces'
- alias kgsw='kgs --watch'
- alias kgswide='kgs -o wide'
- alias kes='kubectl edit svc'
- alias kds='kubectl describe svc'
- alias kdels='kubectl delete svc'
- # Ingress management
- alias kgi='kubectl get ingress'
- alias kgia='kubectl get ingress --all-namespaces'
- alias kei='kubectl edit ingress'
- alias kdi='kubectl describe ingress'
- alias kdeli='kubectl delete ingress'
- # Namespace management
- alias kgns='kubectl get namespaces'
- alias kens='kubectl edit namespace'
- alias kdns='kubectl describe namespace'
- alias kdelns='kubectl delete namespace'
- alias kcn='kubectl config set-context --current --namespace'
- # ConfigMap management
- alias kgcm='kubectl get configmaps'
- alias kgcma='kubectl get configmaps --all-namespaces'
- alias kecm='kubectl edit configmap'
- alias kdcm='kubectl describe configmap'
- alias kdelcm='kubectl delete configmap'
- # Secret management
- alias kgsec='kubectl get secret'
- alias kgseca='kubectl get secret --all-namespaces'
- alias kdsec='kubectl describe secret'
- alias kdelsec='kubectl delete secret'
- # Deployment management.
- alias kgd='kubectl get deployment'
- alias kgda='kubectl get deployment --all-namespaces'
- alias kgdw='kgd --watch'
- alias kgdwide='kgd -o wide'
- alias ked='kubectl edit deployment'
- alias kdd='kubectl describe deployment'
- alias kdeld='kubectl delete deployment'
- alias ksd='kubectl scale deployment'
- alias krsd='kubectl rollout status deployment'
- function kres(){
- kubectl set env $@ REFRESHED_AT=$(date +%Y%m%d%H%M%S)
- }
- # Rollout management.
- alias kgrs='kubectl get replicaset'
- alias kdrs='kubectl describe replicaset'
- alias kers='kubectl edit replicaset'
- alias krh='kubectl rollout history'
- alias kru='kubectl rollout undo'
- # Statefulset management.
- alias kgss='kubectl get statefulset'
- alias kgssa='kubectl get statefulset --all-namespaces'
- alias kgssw='kgss --watch'
- alias kgsswide='kgss -o wide'
- alias kess='kubectl edit statefulset'
- alias kdss='kubectl describe statefulset'
- alias kdelss='kubectl delete statefulset'
- alias ksss='kubectl scale statefulset'
- alias krsss='kubectl rollout status statefulset'
- # Port forwarding
- alias kpf="kubectl port-forward"
- # Tools for accessing all information
- alias kga='kubectl get all'
- alias kgaa='kubectl get all --all-namespaces'
- # Logs
- alias kl='kubectl logs'
- alias kl1h='kubectl logs --since 1h'
- alias kl1m='kubectl logs --since 1m'
- alias kl1s='kubectl logs --since 1s'
- alias klf='kubectl logs -f'
- alias klf1h='kubectl logs --since 1h -f'
- alias klf1m='kubectl logs --since 1m -f'
- alias klf1s='kubectl logs --since 1s -f'
- # File copy
- alias kcp='kubectl cp'
- # Node Management
- alias kgno='kubectl get nodes'
- alias kgnosl='kubectl get nodes --show-labels'
- alias keno='kubectl edit node'
- alias kdno='kubectl describe node'
- alias kdelno='kubectl delete node'
- # PVC management.
- alias kgpvc='kubectl get pvc'
- alias kgpvca='kubectl get pvc --all-namespaces'
- alias kgpvcw='kgpvc --watch'
- alias kepvc='kubectl edit pvc'
- alias kdpvc='kubectl describe pvc'
- alias kdelpvc='kubectl delete pvc'
- # Service account management.
- alias kdsa="kubectl describe sa"
- alias kdelsa="kubectl delete sa"
- # DaemonSet management.
- alias kgds='kubectl get daemonset'
- alias kgdsa='kubectl get daemonset --all-namespaces'
- alias kgdsw='kgds --watch'
- alias keds='kubectl edit daemonset'
- alias kdds='kubectl describe daemonset'
- alias kdelds='kubectl delete daemonset'
- # CronJob management.
- alias kgcj='kubectl get cronjob'
- alias kecj='kubectl edit cronjob'
- alias kdcj='kubectl describe cronjob'
- alias kdelcj='kubectl delete cronjob'
- # Job management.
- alias kgj='kubectl get job'
- alias kej='kubectl edit job'
- alias kdj='kubectl describe job'
- alias kdelj='kubectl delete job'
- # Utility print functions (json / yaml)
- function _build_kubectl_out_alias {
- setopt localoptions norcexpandparam
- # alias function
- eval "function $1 { $2 }"
- # completion function
- eval "function _$1 {
- words=(kubectl \"\${words[@]:1}\")
- _kubectl
- }"
- compdef _$1 $1
- }
- _build_kubectl_out_alias "kj" 'kubectl "$@" -o json | jq'
- _build_kubectl_out_alias "kjx" 'kubectl "$@" -o json | fx'
- _build_kubectl_out_alias "ky" 'kubectl "$@" -o yaml | yh'
- unfunction _build_kubectl_out_alias
|