mirror of
				https://github.com/ohmyzsh/ohmyzsh.git
				synced 2024-05-11 05:55:17 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			163 lines
		
	
	
		
			4.6 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
			
		
		
	
	
			163 lines
		
	
	
		
			4.6 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
if (( $+commands[kubectl] )); then
 | 
						||
    __KUBECTL_COMPLETION_FILE="${ZSH_CACHE_DIR}/kubectl_completion"
 | 
						||
 | 
						||
    if [[ ! -f $__KUBECTL_COMPLETION_FILE || ! -s $__KUBECTL_COMPLETION_FILE ]]; then
 | 
						||
        kubectl completion zsh >! $__KUBECTL_COMPLETION_FILE
 | 
						||
    fi
 | 
						||
 | 
						||
    [[ -f $__KUBECTL_COMPLETION_FILE ]] && source $__KUBECTL_COMPLETION_FILE
 | 
						||
 | 
						||
    unset __KUBECTL_COMPLETION_FILE
 | 
						||
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 -ti'
 | 
						||
 | 
						||
# 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'
 | 
						||
 | 
						||
# 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 $(kubectl config current-context) --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'
 | 
						||
kres(){
 | 
						||
    kubectl set env $@ REFRESHED_AT=$(date +%Y%m%d%H%M%S)
 | 
						||
}
 | 
						||
 | 
						||
# Rollout management.
 | 
						||
alias kgrs='kubectl get rs'
 | 
						||
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'
 | 
						||
 | 
						||
# Only run if the user actually has kubectl installed
 | 
						||
if (( ${+_comps[kubectl]} )); then
 | 
						||
  kj() { kubectl "$@" -o json | jq; }
 | 
						||
  kjx() { kubectl "$@" -o json | fx; }
 | 
						||
  ky() { kubectl "$@" -o yaml | yh; }
 | 
						||
 | 
						||
  compdef kj=kubectl
 | 
						||
  compdef kjx=kubectl
 | 
						||
  compdef ky=kubectl
 | 
						||
fi
 |