diff options
Diffstat (limited to 'plugins/kubectl/kubectl.plugin.zsh')
| -rw-r--r-- | plugins/kubectl/kubectl.plugin.zsh | 46 |
1 files changed, 31 insertions, 15 deletions
diff --git a/plugins/kubectl/kubectl.plugin.zsh b/plugins/kubectl/kubectl.plugin.zsh index 0dd4e691a..ba371cd87 100644 --- a/plugins/kubectl/kubectl.plugin.zsh +++ b/plugins/kubectl/kubectl.plugin.zsh @@ -21,6 +21,9 @@ alias kca='_kca(){ kubectl "$@" --all-namespaces; unset -f _kca; }; _kca' # Apply a YML file alias kaf='kubectl apply -f' +# Apply a kustomization directory +alias kapk='kubectl apply -k' + # Drop into an interactive terminal on a container alias keti='kubectl exec -t -i' @@ -36,9 +39,15 @@ alias kcgc='kubectl config get-contexts' # General aliases alias kdel='kubectl delete' alias kdelf='kubectl delete -f' +alias kdelk='kubectl delete -k' +alias kge='kubectl get events --sort-by=".lastTimestamp"' +alias kgew='kubectl get events --sort-by=".lastTimestamp" --watch' # 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' @@ -47,12 +56,6 @@ alias kdp='kubectl describe pods' alias kdelp='kubectl delete pods' alias kgpall='kubectl get pods --all-namespaces -o wide' -# get pod by label: kgpl "app=myapp" -n myns -alias kgpl='kgp -l' - -# get pod by namespace: kgpn kube-system" -alias kgpn='kgp -n' - # Service management. alias kgs='kubectl get svc' alias kgsa='kubectl get svc --all-namespaces' @@ -99,6 +102,7 @@ alias kdd='kubectl describe deployment' alias kdeld='kubectl delete deployment' alias ksd='kubectl scale deployment' alias krsd='kubectl rollout status deployment' +alias krrd='kubectl rollout restart deployment' function kres(){ kubectl set env $@ REFRESHED_AT=$(date +%Y%m%d%H%M%S) @@ -121,6 +125,7 @@ alias kdss='kubectl describe statefulset' alias kdelss='kubectl delete statefulset' alias ksss='kubectl scale statefulset' alias krsss='kubectl rollout status statefulset' +alias krrss='kubectl rollout restart statefulset' # Port forwarding alias kpf="kubectl port-forward" @@ -144,6 +149,7 @@ 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' @@ -180,13 +186,23 @@ alias kej='kubectl edit job' alias kdj='kubectl describe job' alias kdelj='kubectl delete job' -# Only run if the user actually has kubectl installed -if (( ${+_comps[kubectl]} )); then - function kj() { kubectl "$@" -o json | jq; } - function kjx() { kubectl "$@" -o json | fx; } - function ky() { kubectl "$@" -o yaml | yh; } +# Utility print functions (json / yaml) +function _build_kubectl_out_alias { + setopt localoptions norcexpandparam - compdef kj=kubectl - compdef kjx=kubectl - compdef ky=kubectl -fi + # 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 |
