diff options
Diffstat (limited to 'oh-my-zsh/plugins/kubectl/kubectl.plugin.zsh')
-rw-r--r-- | oh-my-zsh/plugins/kubectl/kubectl.plugin.zsh | 191 |
1 files changed, 191 insertions, 0 deletions
diff --git a/oh-my-zsh/plugins/kubectl/kubectl.plugin.zsh b/oh-my-zsh/plugins/kubectl/kubectl.plugin.zsh new file mode 100644 index 0000000..315d3ce --- /dev/null +++ b/oh-my-zsh/plugins/kubectl/kubectl.plugin.zsh @@ -0,0 +1,191 @@ +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 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' + +# 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' +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 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 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' + +# 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; } + + compdef kj=kubectl + compdef kjx=kubectl + compdef ky=kubectl +fi |