kubectl.plugin.zsh 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. if (( $+commands[kubectl] )); then
  2. __KUBECTL_COMPLETION_FILE="${ZSH_CACHE_DIR}/kubectl_completion"
  3. if [[ ! -f $__KUBECTL_COMPLETION_FILE ]]; then
  4. kubectl completion zsh >! $__KUBECTL_COMPLETION_FILE
  5. fi
  6. [[ -f $__KUBECTL_COMPLETION_FILE ]] && source $__KUBECTL_COMPLETION_FILE
  7. unset __KUBECTL_COMPLETION_FILE
  8. fi
  9. alias ku=kubectl
  10. # Execute a kubectl command against all namespaces
  11. alias kca='f(){ kubectl "$@" --all-namespaces; unset -f f; }; f'
  12. # Apply a YML file
  13. alias kaf='kubectl apply -f'
  14. # Drop into an interactive terminal on a container
  15. alias keti='kubectl exec -ti'
  16. # Manage configuration quickly to switch contexts between local, dev ad staging.
  17. alias kcuc='kubectl config use-context'
  18. alias kcsc='kubectl config set-context'
  19. alias kcdc='kubectl config delete-context'
  20. alias kccc='kubectl config current-context'
  21. # General aliases
  22. alias kdel='kubectl delete'
  23. alias kdelf='kubectl delete -f'
  24. # Pod management.
  25. alias kgp='kubectl get pods'
  26. alias kgpw='kgp --watch'
  27. alias kgpwide='kgp -o wide'
  28. alias kep='kubectl edit pods'
  29. alias kdp='kubectl describe pods'
  30. alias kdelp='kubectl delete pods'
  31. # get pod by label: kgpl "app=myapp" -n myns
  32. alias kgpl='kgp -l'
  33. # Service management.
  34. alias kgs='kubectl get svc'
  35. alias kgsw='kgs --watch'
  36. alias kgswide='kgs -o wide'
  37. alias kes='kubectl edit svc'
  38. alias kds='kubectl describe svc'
  39. alias kdels='kubectl delete svc'
  40. # Ingress management
  41. alias kgi='kubectl get ingress'
  42. alias kei='kubectl edit ingress'
  43. alias kdi='kubectl describe ingress'
  44. alias kdeli='kubectl delete ingress'
  45. # Namespace management
  46. alias kgns='kubectl get namespaces'
  47. alias kens='kubectl edit namespace'
  48. alias kdns='kubectl describe namespace'
  49. alias kdelns='kubectl delete namespace'
  50. alias kcn='kubectl config set-context $(kubectl config current-context) --namespace'
  51. # ConfigMap management
  52. alias kgcm='kubectl get configmaps'
  53. alias kecm='kubectl edit configmap'
  54. alias kdcm='kubectl describe configmap'
  55. alias kdelcm='kubectl delete configmap'
  56. # Secret management
  57. alias kgsec='kubectl get secret'
  58. alias kdsec='kubectl describe secret'
  59. alias kdelsec='kubectl delete secret'
  60. # Deployment management.
  61. alias kgd='kubectl get deployment'
  62. alias kgdw='kgd --watch'
  63. alias kgdwide='kgd -o wide'
  64. alias ked='kubectl edit deployment'
  65. alias kdd='kubectl describe deployment'
  66. alias kdeld='kubectl delete deployment'
  67. alias ksd='kubectl scale deployment'
  68. alias krsd='kubectl rollout status deployment'
  69. kres(){
  70. kubectl set env $@ REFRESHED_AT=$(date +%Y%m%d%H%M%S)
  71. }
  72. # Rollout management.
  73. alias kgrs='kubectl get rs'
  74. alias krh='kubectl rollout history'
  75. alias kru='kubectl rollout undo'
  76. # Port forwarding
  77. alias kpf="kubectl port-forward"
  78. # Tools for accessing all information
  79. alias kga='kubectl get all'
  80. alias kgaa='kubectl get all --all-namespaces'
  81. # Logs
  82. alias kl='kubectl logs'
  83. alias klf='kubectl logs -f'
  84. # File copy
  85. alias kcp='kubectl cp'
  86. # Node Management
  87. alias kgno='kubectl get nodes'
  88. alias keno='kubectl edit node'
  89. alias kdno='kubectl describe node'
  90. alias kdelno='kubectl delete node'