2018-05-27 00:25:47 +08:00
|
|
|
|
if (( $+commands[kubectl] )); then
|
|
|
|
|
__KUBECTL_COMPLETION_FILE="${ZSH_CACHE_DIR}/kubectl_completion"
|
2016-08-15 08:30:55 +08:00
|
|
|
|
|
2018-05-27 00:25:47 +08:00
|
|
|
|
if [[ ! -f $__KUBECTL_COMPLETION_FILE ]]; then
|
|
|
|
|
kubectl completion zsh >! $__KUBECTL_COMPLETION_FILE
|
|
|
|
|
fi
|
2018-05-20 20:46:27 +08:00
|
|
|
|
|
2018-05-27 00:25:47 +08:00
|
|
|
|
[[ -f $__KUBECTL_COMPLETION_FILE ]] && source $__KUBECTL_COMPLETION_FILE
|
2018-05-20 20:46:27 +08:00
|
|
|
|
|
2018-05-27 00:25:47 +08:00
|
|
|
|
unset __KUBECTL_COMPLETION_FILE
|
2016-08-15 08:30:55 +08:00
|
|
|
|
fi
|
2017-11-08 00:00:14 +08:00
|
|
|
|
|
2018-07-03 23:46:33 +08:00
|
|
|
|
# This command is used a LOT both below and in daily life
|
2017-11-08 00:00:14 +08:00
|
|
|
|
alias k=kubectl
|
|
|
|
|
|
2019-03-11 00:36:51 +08:00
|
|
|
|
# Execute a kubectl command against all namespaces
|
|
|
|
|
alias kca='f(){ kubectl "$@" --all-namespaces; unset -f f; }; f'
|
|
|
|
|
|
2018-03-10 00:14:09 +08:00
|
|
|
|
# Apply a YML file
|
2018-08-14 04:07:07 +08:00
|
|
|
|
alias kaf='kubectl apply -f'
|
2018-03-10 00:14:09 +08:00
|
|
|
|
|
2017-11-08 00:00:14 +08:00
|
|
|
|
# Drop into an interactive terminal on a container
|
2018-08-14 04:07:07 +08:00
|
|
|
|
alias keti='kubectl exec -ti'
|
2017-11-08 00:00:14 +08:00
|
|
|
|
|
|
|
|
|
# Manage configuration quickly to switch contexts between local, dev ad staging.
|
2018-08-14 04:07:07 +08:00
|
|
|
|
alias kcuc='kubectl config use-context'
|
|
|
|
|
alias kcsc='kubectl config set-context'
|
|
|
|
|
alias kcdc='kubectl config delete-context'
|
|
|
|
|
alias kccc='kubectl config current-context'
|
2017-11-08 00:00:14 +08:00
|
|
|
|
|
2018-10-03 03:14:28 +08:00
|
|
|
|
# General aliases
|
|
|
|
|
alias kdel='kubectl delete'
|
|
|
|
|
alias kdelf='kubectl delete -f'
|
|
|
|
|
|
2017-11-08 00:00:14 +08:00
|
|
|
|
# Pod management.
|
2018-08-14 04:07:07 +08:00
|
|
|
|
alias kgp='kubectl get pods'
|
2018-10-03 03:14:28 +08:00
|
|
|
|
alias kgpw='kgp --watch'
|
|
|
|
|
alias kgpwide='kgp -o wide'
|
2018-08-14 04:07:07 +08:00
|
|
|
|
alias kep='kubectl edit pods'
|
|
|
|
|
alias kdp='kubectl describe pods'
|
|
|
|
|
alias kdelp='kubectl delete pods'
|
2017-11-08 00:00:14 +08:00
|
|
|
|
|
2018-08-30 03:01:40 +08:00
|
|
|
|
# get pod by label: kgpl "app=myapp" -n myns
|
2018-10-10 02:31:11 +08:00
|
|
|
|
alias kgpl='kgp -l'
|
2018-08-30 03:01:40 +08:00
|
|
|
|
|
2017-11-08 00:00:14 +08:00
|
|
|
|
# Service management.
|
2018-08-14 04:07:07 +08:00
|
|
|
|
alias kgs='kubectl get svc'
|
2018-10-03 03:14:28 +08:00
|
|
|
|
alias kgsw='kgs --watch'
|
|
|
|
|
alias kgswide='kgs -o wide'
|
2018-08-14 04:07:07 +08:00
|
|
|
|
alias kes='kubectl edit svc'
|
|
|
|
|
alias kds='kubectl describe svc'
|
|
|
|
|
alias kdels='kubectl delete svc'
|
2017-11-08 00:00:14 +08:00
|
|
|
|
|
2018-04-28 22:55:46 +08:00
|
|
|
|
# Ingress management
|
2018-08-14 04:07:07 +08:00
|
|
|
|
alias kgi='kubectl get ingress'
|
|
|
|
|
alias kei='kubectl edit ingress'
|
|
|
|
|
alias kdi='kubectl describe ingress'
|
|
|
|
|
alias kdeli='kubectl delete ingress'
|
2018-04-28 22:55:46 +08:00
|
|
|
|
|
2018-10-03 02:55:45 +08:00
|
|
|
|
# Namespace management
|
|
|
|
|
alias kgns='kubectl get namespaces'
|
|
|
|
|
alias kens='kubectl edit namespace'
|
|
|
|
|
alias kdns='kubectl describe namespace'
|
|
|
|
|
alias kdelns='kubectl delete namespace'
|
2019-01-07 22:35:39 +08:00
|
|
|
|
alias kcn='kubectl config set-context $(kubectl config current-context) --namespace'
|
2018-10-03 02:55:45 +08:00
|
|
|
|
|
|
|
|
|
# ConfigMap management
|
|
|
|
|
alias kgcm='kubectl get configmaps'
|
|
|
|
|
alias kecm='kubectl edit configmap'
|
|
|
|
|
alias kdcm='kubectl describe configmap'
|
|
|
|
|
alias kdelcm='kubectl delete configmap'
|
|
|
|
|
|
2017-11-08 00:00:14 +08:00
|
|
|
|
# Secret management
|
2018-08-14 04:07:07 +08:00
|
|
|
|
alias kgsec='kubectl get secret'
|
|
|
|
|
alias kdsec='kubectl describe secret'
|
|
|
|
|
alias kdelsec='kubectl delete secret'
|
2017-11-08 00:00:14 +08:00
|
|
|
|
|
|
|
|
|
# Deployment management.
|
2018-08-14 04:07:07 +08:00
|
|
|
|
alias kgd='kubectl get deployment'
|
2018-10-03 03:14:28 +08:00
|
|
|
|
alias kgdw='kgd --watch'
|
|
|
|
|
alias kgdwide='kgd -o wide'
|
2018-08-14 04:07:07 +08:00
|
|
|
|
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'
|
2019-01-07 22:24:44 +08:00
|
|
|
|
kres(){
|
|
|
|
|
kubectl set env $@ REFRESHED_AT=$(date +%Y%m%d%H%M%S)
|
|
|
|
|
}
|
2017-11-08 00:00:14 +08:00
|
|
|
|
|
|
|
|
|
# Rollout management.
|
2018-08-14 04:07:07 +08:00
|
|
|
|
alias kgrs='kubectl get rs'
|
|
|
|
|
alias krh='kubectl rollout history'
|
|
|
|
|
alias kru='kubectl rollout undo'
|
2018-03-10 00:12:42 +08:00
|
|
|
|
|
2018-08-30 03:01:40 +08:00
|
|
|
|
# Port forwarding
|
2018-10-03 02:53:38 +08:00
|
|
|
|
alias kpf="kubectl port-forward"
|
|
|
|
|
|
|
|
|
|
# Tools for accessing all information
|
|
|
|
|
alias kga='kubectl get all'
|
|
|
|
|
alias kgaa='kubectl get all --all-namespaces'
|
2018-08-30 03:01:40 +08:00
|
|
|
|
|
2018-03-10 00:12:42 +08:00
|
|
|
|
# Logs
|
2018-08-14 04:07:07 +08:00
|
|
|
|
alias kl='kubectl logs'
|
|
|
|
|
alias klf='kubectl logs -f'
|
2018-08-30 02:51:50 +08:00
|
|
|
|
|
2018-08-30 02:56:30 +08:00
|
|
|
|
# File copy
|
|
|
|
|
alias kcp='kubectl cp'
|
|
|
|
|
|
2018-08-30 02:51:50 +08:00
|
|
|
|
# Node Management
|
|
|
|
|
alias kgno='kubectl get nodes'
|
|
|
|
|
alias keno='kubectl edit node'
|
|
|
|
|
alias kdno='kubectl describe node'
|
2018-10-10 02:31:11 +08:00
|
|
|
|
alias kdelno='kubectl delete node'
|