Skip to content

Instantly share code, notes, and snippets.

@andyfcx
Forked from doevelopper/Kubectl-aliases.md
Created July 1, 2022 09:09
Show Gist options
  • Save andyfcx/efbd558c751cbaebd10c8277639c6b7e to your computer and use it in GitHub Desktop.
Save andyfcx/efbd558c751cbaebd10c8277639c6b7e to your computer and use it in GitHub Desktop.

Revisions

  1. Adrien H created this gist Jun 3, 2019.
    214 changes: 214 additions & 0 deletions Kubectl-aliases.md
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,214 @@
    # Kubectl plugin

    This plugin adds completion for the [Kubernetes cluster manager](https://kubernetes.io/docs/reference/kubectl/kubectl/),
    as well as some aliases for common kubectl commands.

    To use it, add `kubectl` to the plugins array in your zshrc file:

    ```zsh
    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 |



    ```sh
    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'
    ```