kubectl.plugin.zsh 3.09 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
5
6
    if [[ ! -f $__KUBECTL_COMPLETION_FILE ]]; then
        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
17
18
# Execute a kubectl command against all namespaces
alias kca='f(){ kubectl "$@" --all-namespaces;  unset -f f; }; f'

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
41
alias kgpw='kgp --watch'
alias kgpwide='kgp -o wide'
42
43
44
alias kep='kubectl edit pods'
alias kdp='kubectl describe pods'
alias kdelp='kubectl delete pods'
45

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

49
# Service management.
50
alias kgs='kubectl get svc'
51
52
alias kgsw='kgs --watch'
alias kgswide='kgs -o wide'
53
54
55
alias kes='kubectl edit svc'
alias kds='kubectl describe svc'
alias kdels='kubectl delete svc'
56

57
# Ingress management
58
59
60
61
alias kgi='kubectl get ingress'
alias kei='kubectl edit ingress'
alias kdi='kubectl describe ingress'
alias kdeli='kubectl delete ingress'
62

63
64
65
66
67
# Namespace management
alias kgns='kubectl get namespaces'
alias kens='kubectl edit namespace'
alias kdns='kubectl describe namespace'
alias kdelns='kubectl delete namespace'
68
alias kcn='kubectl config set-context $(kubectl config current-context) --namespace'
69
70
71
72
73
74
75

# ConfigMap management
alias kgcm='kubectl get configmaps'
alias kecm='kubectl edit configmap'
alias kdcm='kubectl describe configmap'
alias kdelcm='kubectl delete configmap'

76
# Secret management
77
78
79
alias kgsec='kubectl get secret'
alias kdsec='kubectl describe secret'
alias kdelsec='kubectl delete secret'
80
81

# Deployment management.
82
alias kgd='kubectl get deployment'
83
84
alias kgdw='kgd --watch'
alias kgdwide='kgd -o wide'
85
86
87
88
89
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'
90
91
92
kres(){
    kubectl set env $@ REFRESHED_AT=$(date +%Y%m%d%H%M%S)
}
93
94

# Rollout management.
95
96
97
alias kgrs='kubectl get rs'
alias krh='kubectl rollout history'
alias kru='kubectl rollout undo'
98

99
# Port forwarding
100
101
102
103
104
alias kpf="kubectl port-forward"

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

106
# Logs
107
108
alias kl='kubectl logs'
alias klf='kubectl logs -f'
109

110
111
112
# File copy
alias kcp='kubectl cp'

113
114
115
116
# Node Management
alias kgno='kubectl get nodes'
alias keno='kubectl edit node'
alias kdno='kubectl describe node'
Kayla Altepeter's avatar
Kayla Altepeter committed
117
alias kdelno='kubectl delete node'