Skip to content

Instantly share code, notes, and snippets.

@MartinMiles
Forked from doevelopper/Kubectl-aliases.md
Created June 7, 2024 23:47
Show Gist options
  • Save MartinMiles/3c231195885a97e31386ec41a5810e7f to your computer and use it in GitHub Desktop.
Save MartinMiles/3c231195885a97e31386ec41a5810e7f to your computer and use it in GitHub Desktop.

Kubectl plugin

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)

Aliases

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'
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment