kubectl.plugin.zsh 5.06 KB
Newer Older
1
2
if (( $+commands[kubectl] )); then
    __KUBECTL_COMPLETION_FILE="${ZSH_CACHE_DIR}/kubectl_completion"
Patrick Stadler's avatar
Patrick Stadler committed
3

4
    if [[ ! -f $__KUBECTL_COMPLETION_FILE || ! -s $__KUBECTL_COMPLETION_FILE ]]; then
5
6
        kubectl completion zsh >! $__KUBECTL_COMPLETION_FILE
    fi
7

8
    [[ -f $__KUBECTL_COMPLETION_FILE ]] && source $__KUBECTL_COMPLETION_FILE
9

10
    unset __KUBECTL_COMPLETION_FILE
Patrick Stadler's avatar
Patrick Stadler committed
11
fi
12

13
14
# This command is used a LOT both below and in daily life
alias k=kubectl
15

16
# Execute a kubectl command against all namespaces
17
alias kca='_kca(){ kubectl "$@" --all-namespaces;  unset -f _kca; }; _kca'
18

19
# Apply a YML file
20
alias kaf='kubectl apply -f'
21

22
# Drop into an interactive terminal on a container
23
alias keti='kubectl exec -ti'
24
25

# Manage configuration quickly to switch contexts between local, dev ad staging.
26
27
28
29
alias kcuc='kubectl config use-context'
alias kcsc='kubectl config set-context'
alias kcdc='kubectl config delete-context'
alias kccc='kubectl config current-context'
30

31
32
33
# List all contexts
alias kcgc='kubectl config get-contexts'

34
35
36
37
# General aliases
alias kdel='kubectl delete'
alias kdelf='kubectl delete -f'

38
# Pod management.
39
alias kgp='kubectl get pods'
40
alias kgpa='kubectl get pods --all-namespaces'
41
42
alias kgpw='kgp --watch'
alias kgpwide='kgp -o wide'
43
44
45
alias kep='kubectl edit pods'
alias kdp='kubectl describe pods'
alias kdelp='kubectl delete pods'
Aleksandr Kozlov's avatar
Aleksandr Kozlov committed
46
alias kgpall='k get pods --all-namespaces -o wide'
47

48
# get pod by label: kgpl "app=myapp" -n myns
Kayla Altepeter's avatar
Kayla Altepeter committed
49
alias kgpl='kgp -l'
50

51
52
53
# get pod by namespace: kgpn kube-system"
alias kgpn='kgp -n'

54
# Service management.
55
alias kgs='kubectl get svc'
56
alias kgsa='kubectl get svc --all-namespaces'
57
58
alias kgsw='kgs --watch'
alias kgswide='kgs -o wide'
59
60
61
alias kes='kubectl edit svc'
alias kds='kubectl describe svc'
alias kdels='kubectl delete svc'
62

63
# Ingress management
64
alias kgi='kubectl get ingress'
65
alias kgia='kubectl get ingress --all-namespaces'
66
67
68
alias kei='kubectl edit ingress'
alias kdi='kubectl describe ingress'
alias kdeli='kubectl delete ingress'
69

70
71
72
73
74
# Namespace management
alias kgns='kubectl get namespaces'
alias kens='kubectl edit namespace'
alias kdns='kubectl describe namespace'
alias kdelns='kubectl delete namespace'
75
alias kcn='kubectl config set-context --current --namespace'
76
77
78

# ConfigMap management
alias kgcm='kubectl get configmaps'
79
alias kgcma='kubectl get configmaps --all-namespaces'
80
81
82
83
alias kecm='kubectl edit configmap'
alias kdcm='kubectl describe configmap'
alias kdelcm='kubectl delete configmap'

84
# Secret management
85
alias kgsec='kubectl get secret'
86
alias kgseca='kubectl get secret --all-namespaces'
87
88
alias kdsec='kubectl describe secret'
alias kdelsec='kubectl delete secret'
89
90

# Deployment management.
91
alias kgd='kubectl get deployment'
92
alias kgda='kubectl get deployment --all-namespaces'
93
94
alias kgdw='kgd --watch'
alias kgdwide='kgd -o wide'
95
96
97
98
99
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'
100
101
102
kres(){
    kubectl set env $@ REFRESHED_AT=$(date +%Y%m%d%H%M%S)
}
103
104

# Rollout management.
105
106
107
alias kgrs='kubectl get rs'
alias krh='kubectl rollout history'
alias kru='kubectl rollout undo'
108

109
110
# Statefulset management.
alias kgss='kubectl get statefulset'
111
alias kgssa='kubectl get statefulset --all-namespaces'
112
113
114
115
116
117
118
119
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'

120
# Port forwarding
121
122
123
124
125
alias kpf="kubectl port-forward"

# Tools for accessing all information
alias kga='kubectl get all'
alias kgaa='kubectl get all --all-namespaces'
126

127
# Logs
128
alias kl='kubectl logs'
129
130
131
alias kl1h='kubectl logs --since 1h'
alias kl1m='kubectl logs --since 1m'
alias kl1s='kubectl logs --since 1s'
132
alias klf='kubectl logs -f'
133
134
135
alias klf1h='kubectl logs --since 1h -f'
alias klf1m='kubectl logs --since 1m -f'
alias klf1s='kubectl logs --since 1s -f'
136

137
138
139
# File copy
alias kcp='kubectl cp'

140
141
142
143
# Node Management
alias kgno='kubectl get nodes'
alias keno='kubectl edit node'
alias kdno='kubectl describe node'
Kayla Altepeter's avatar
Kayla Altepeter committed
144
alias kdelno='kubectl delete node'
145
146
147

# PVC management.
alias kgpvc='kubectl get pvc'
148
alias kgpvca='kubectl get pvc --all-namespaces'
149
150
151
152
153
alias kgpvcw='kgpvc --watch'
alias kepvc='kubectl edit pvc'
alias kdpvc='kubectl describe pvc'
alias kdelpvc='kubectl delete pvc'

154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
# 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'

171
# Only run if the user actually has kubectl installed
172
if (( ${+_comps[kubectl]} )); then
173
174
175
  kj() { kubectl "$@" -o json | jq; }
  kjx() { kubectl "$@" -o json | fx; }
  ky() { kubectl "$@" -o yaml | yh; }
176

177
178
179
180
  compdef kj=kubectl
  compdef kjx=kubectl
  compdef ky=kubectl
fi