This plugin adds completion for the Kubernetes cluster manager, as well as some aliases for common kubectl commands.
To use it, add kubectl
to the plugins array in your zshrc file:
plugins=(... kubectl)
Alias | Command | Description |
---|---|---|
k | kubectl |
The kubectl command |
kca | kubectl --all-namespaces |
The kubectl command targeting all namespaces |
kaf | kubectl apply -f |
Apply a YML file |
keti | kubectl exec -ti |
Drop into an interactive terminal on a container |
Manage configuration quickly to switch contexts between local, dev and staging | ||
kcuc | kubectl config use-context |
Set the current-context in a kubeconfig file |
kcsc | kubectl config set-context |
Set a context entry in kubeconfig |
kcdc | kubectl config delete-context |
Delete the specified context from the kubeconfig |
kccc | kubectl config current-context |
Display the current-context |
kcgc | kubectl config get-contexts |
List of contexts available |
General aliases | ||
kdel | kubectl delete |
Delete resources by filenames, stdin, resources and names, or by resources and label selector |
kdelf | kubectl delete -f |
Delete a pod using the type and name specified in -f argument |
Pod management | ||
kgp | kubectl get pods |
List all pods in ps output format |
kgpw | kgp --watch |
After listing/getting the requested object, watch for changes |
kgpwide | kgp -o wide |
Output in plain-text format with any additional information. For pods, the node name is included |
kep | kubectl edit pods |
Edit pods from the default editor |
kdp | kubectl describe pods |
Describe all pods |
kdelp | kubectl delete pods |
Delete all pods matching passed arguments |
kgpl | kgp -l |
Get pod by label. Example: kgpl "app=myapp" -n myns |
Service management | ||
kgs | kubectl get svc |
List all services in ps output format |
kgsw | kgs --watch |
After listing all services, watch for changes |
kgswide | kgs -o wide |
After listing all services, output in plain-text format with any additional information |
kes | kubectl edit svc |
Edit services(svc) from the default editor |
kds | kubectl describe svc |
Describe all services in detail |
kdels | kubectl delete svc |
Delete all services matching passed argument |
Ingress management | ||
kgi | kubectl get ingress |
List ingress resources in ps output format |
kei | kubectl edit ingress |
Edit ingress resource from the default editor |
kdi | kubectl describe ingress |
Describe ingress resource in detail |
kdeli | kubectl delete ingress |
Delete ingress resources matching passed argument |
Namespace management | ||
kgns | kubectl get namespaces |
List the current namespaces in a cluster |
kcn | kubectl config set-context ... |
Change current namespace |
kens | kubectl edit namespace |
Edit namespace resource from the default editor |
kdns | kubectl describe namespace |
Describe namespace resource in detail |
kdelns | kubectl delete namespace |
Delete the namespace. WARNING! This deletes everything in the namespace |
ConfigMap management | ||
kgcm | kubectl get configmaps |
List the configmaps in ps output format |
kecm | kubectl edit configmap |
Edit configmap resource from the default editor |
kdcm | kubectl describe configmap |
Describe configmap resource in detail |
kdelcm | kubectl delete configmap |
Delete the configmap |
Secret management | ||
kgsec | kubectl get secret |
Get secret for decoding |
kdsec | kubectl describe secret |
Describe secret resource in detail |
kdelsec | kubectl delete secret |
Delete the secret |
Deployment management | ||
kgd | kubectl get deployment |
Get the deployment |
kgdw | kgd --watch |
After getting the deployment, watch for changes |
kgdwide | kgd -o wide |
After getting the deployment, output in plain-text format with any additional information |
ked | kubectl edit deployment |
Edit deployment resource from the default editor |
kdd | kubectl describe deployment |
Describe deployment resource in detail |
kdeld | kubectl delete deployment |
Delete the deployment |
ksd | kubectl scale deployment |
Scale a deployment |
krsd | kubectl rollout status deployment |
Check the rollout status of a deployment |
kres | kubectl set env $@ REFRESHED_AT=... |
Recreate all pods in deployment with zero-downtime |
Rollout management | ||
kgrs | kubectl get rs |
To see the ReplicaSet rs created by the deployment |
krh | kubectl rollout history |
Check the revisions of this deployment |
kru | kubectl rollout undo |
Rollback to the previous revision |
Port forwarding | ||
kpf | kubectl port-forward |
Forward one or more local ports to a pod |
Tools for accessing all information | ||
kga | kubectl get all |
List all resources in ps format |
kgaa | kubectl get all --all-namespaces |
List the requested object(s) across all namespaces |
Logs | ||
kl | kubectl logs |
Print the logs for a container or resource |
klf | kubectl logs -f |
Stream the logs for a container or resource (follow) |
File copy | ||
kcp | kubectl cp |
Copy files and directories to and from containers |
Node management | ||
kgno | kubectl get nodes |
List the nodes in ps output format |
keno | kubectl edit node |
Edit nodes resource from the default editor |
kdno | kubectl describe node |
Describe node resource in detail |
kdelno | kubectl delete node |
Delete the node |
if (( $+commands[kubectl] )); then
__KUBECTL_COMPLETION_FILE="${ZSH_CACHE_DIR}/kubectl_completion"
if [[ ! -f $__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='f(){ kubectl "$@" --all-namespaces; unset -f f; }; f'
# 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 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'
# Service management.
alias kgs='kubectl get svc'
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 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 kecm='kubectl edit configmap'
alias kdcm='kubectl describe configmap'
alias kdelcm='kubectl delete configmap'
# Secret management
alias kgsec='kubectl get secret'
alias kdsec='kubectl describe secret'
alias kdelsec='kubectl delete secret'
# Deployment management.
alias kgd='kubectl get deployment'
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'
# 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 klf='kubectl logs -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'