mirror of
				https://github.com/ohmyzsh/ohmyzsh.git
				synced 2024-05-11 05:55:17 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			190 lines
		
	
	
		
			5.5 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
			
		
		
	
	
			190 lines
		
	
	
		
			5.5 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
| if (( $+commands[kubectl] )); then
 | ||
|   # If the completion file does not exist, generate it and then source it
 | ||
|   # Otherwise, source it and regenerate in the background
 | ||
|   if [[ ! -f "$ZSH_CACHE_DIR/completions/_kubectl" ]]; then
 | ||
|     kubectl completion zsh | tee "$ZSH_CACHE_DIR/completions/_kubectl" >/dev/null
 | ||
|     source "$ZSH_CACHE_DIR/completions/_kubectl"
 | ||
|   else
 | ||
|     source "$ZSH_CACHE_DIR/completions/_kubectl"
 | ||
|     kubectl completion zsh | tee "$ZSH_CACHE_DIR/completions/_kubectl" >/dev/null &|
 | ||
|   fi
 | ||
| fi
 | ||
| 
 | ||
| # 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
 |