mirror of
				https://github.com/ohmyzsh/ohmyzsh.git
				synced 2025-11-04 21:31:19 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			203 lines
		
	
	
		
			5.7 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
			
		
		
	
	
			203 lines
		
	
	
		
			5.7 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
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'
 | 
						||
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'
 | 
						||
alias kep='kubectl edit pods'
 | 
						||
alias kdp='kubectl describe pods'
 | 
						||
alias kdelp='kubectl delete pods'
 | 
						||
alias kgpall='kubectl get pods --all-namespaces -o wide'
 | 
						||
 | 
						||
# 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 kgnosl='kubectl get nodes --show-labels'
 | 
						||
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 kgdsa='kubectl get daemonset --all-namespaces'
 | 
						||
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'
 | 
						||
 | 
						||
# Utility print functions (json / yaml)
 | 
						||
function _build_kubectl_out_alias {
 | 
						||
  setopt localoptions norcexpandparam
 | 
						||
 | 
						||
  # 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
 |