summaryrefslogtreecommitdiff
path: root/plugins/kubectl/kubectl.plugin.zsh
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/kubectl/kubectl.plugin.zsh')
-rw-r--r--plugins/kubectl/kubectl.plugin.zsh46
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