Fish-Aliases

This is a list of aliases I use to reduce typing when managing my Kubernetes cluster, these are for the fish console

# --- Color Definitions ---
set -x BLU '\033[0;34m'
set -x RED '\033[0;31m'
set -x GRN '\033[0;32m'
set -x NC  '\033[0m'

# --- Kubectl Aliases ---
alias k='kubectl'

# Resource Management Aliases
alias kgp='kubectl get pods'
alias kgpw='kubectl get pods -o wide --sort-by=".spec.nodeName"'
alias kga='kubectl get all'
alias kgn='kubectl get namespaces'
alias kgi='kubectl get ingress'
alias kgc='kubectl get configmaps'
alias kgs='kubectl get services'
alias kgss='kubectl get statefulsets'

# Create Aliases
alias kcc='kubectl create configmap'
alias kcn='kubectl create namespace'
alias kcd='kubectl create deployment'

# Delete/Remove Aliases
alias krp='kubectl delete'
alias krc='kubectl delete configmap'
alias kri='kubectl delete ingress'
alias krn='kubectl delete namespace'
alias krd='kubectl delete deployment'
alias krs='kubectl delete service'
alias krap='kubectl delete all --all -n'

# Edit and Apply Aliases
alias kec='kubectl edit configmap'
alias kaf='kubectl apply -f'
alias krf='kubectl delete -f'
alias ked='kubectl edit deployment'

# Logging and Monitoring
alias kgl='kubectl logs -f'
alias kwp='kubectl logs -f'
alias wkga='watch kubectl get all'
alias wkgp='watch kubectl get pods'
alias ktn='kubectl top nodes'
alias ktp='kubectl top pods'
alias ktpm='kubectl top pods --sort-by=memory'
alias ktpc='kubectl top pods --sort-by=cpu'

# Namespace and Context Management
alias ksn='kubectl config set-context --current --namespace'
alias ksxh='set KUBECONFIG ~/.kube/config-hogwarts'
alias ksxg='set KUBECONFIG ~/.kube/config-gondor'
alias ksx='kubectl config use-context'
alias kgx='kubectl config get-contexts'
alias kcx='kubectl config use-context'

# Scaling and Pause
alias kp='kubectl scale deployment --replicas=0'
alias kr='kubectl scale deployment --replicas=1'
alias kts='talosctl shutdown -n'
alias ktr='talosctl reboot -n'

# Advanced Helpers
alias kdp='kubectl describe pods'
alias tdash='talosctl --nodes 0.0.0.0 --endpoints 0.0.0.1 dashboard' # Replace 0.0.0.0 with your controlplane node ip, replace 0.0.0.1 with your endpoint for the dashboard can be the same as the controlplane
alias kdd='kubectl describe deployments'
alias kdn='kubectl describe nodes'
alias random='openssl rand -hex'

function kgd # this will only work with pbcopy installed
    # Get current namespace
    set namespace (kubectl config view --minify --output 'jsonpath={..namespace}')

    # Get all services in the current namespace
    set services (kubectl get services -o name | sed 's/service\///')

    # Check if any services exist
    if test (count $services) -eq 0
        echo "No services found in namespace: $namespace"
        return 1
    end

    # If there's only one service, automatically select it
    if test (count $services) -eq 1
        set selected_service $services[1]
        set selection 1
    else
        # Display services with numbers
        echo "Select a service from namespace '$namespace':"
        for i in (seq (count $services))
            echo "$i. $services[$i]"
        end

        # Get user selection
        read -P "Enter selection number: " selection
    end

    # Validate selection
    if test "$selection" -ge 1 -a "$selection" -le (count $services)
        set selected_service $services[$selection]

        # Get the port for the selected service
        set port_data (kubectl get service $selected_service -o jsonpath='{.spec.ports[0].port}')

        # Create the URL with port
        set url "$selected_service.$namespace.svc.cluster.local:$port_data"

        # Output the result
        echo $url

        # Copy to clipboard if pbcopy/xclip is available
        if type -q pbcopy
            echo $url | pbcopy
            echo "URL copied to clipboard!"
        else if type -q xclip
            echo $url | xclip -selection clipboard
            echo "URL copied to clipboard!"
        end
    else
        echo "Invalid selection!"
        return 1
    end
end

function tkgd
    # Get current namespace
    set namespace (tsh kubectl config view --minify --output 'jsonpath={..namespace}')

    # Get all services in the current namespace
    set services (tsh kubectl get services -o name | sed 's/service\///')

    # Check if any services exist
    if test (count $services) -eq 0
        echo "No services found in namespace: $namespace"
        return 1
    end

    # Display services with numbers
    echo "Select a service from namespace '$namespace':"
    for i in (seq (count $services))
        echo "$i. $services[$i]"
    end

    # Get user selection
    read -P "Enter selection number: " selection

    # Validate selection
    if test "$selection" -ge 1 -a "$selection" -le (count $services)
        set selected_service $services[$selection]

        # Create the URL
        set url "$selected_service.$namespace.svc.cluster.local"

        # Output the result
        echo $url

        # Copy to clipboard if pbcopy/xclip is available
        if type -q pbcopy
            echo $url | pbcopy
            echo "URL copied to clipboard!"
        else if type -q xclip
            echo $url | xclip -selection clipboard
            echo "URL copied to clipboard!"
        end
    else
        echo "Invalid selection!"
        return 1
    end
end

## These are duplicates of the above but using teleport to connect to the cluster

# --- Kubectl Aliases ---
alias tk='tsh kubectl'

# Resource Management Aliases
alias tkgp='tsh kubectl get pods'
alias tkgpw='tsh kubectl get pods -o wide --sort-by=".spec.nodeName"'
alias tkga='tsh kubectl get all'
alias tkgn='tsh kubectl get namespaces'
alias tkgi='tsh kubectl get ingress'
alias tkgc='tsh kubectl get configmaps'
alias tkgs='tsh kubectl get services'
alias tkgss='tsh kubectl get statefulsets'

# Create Aliases
alias tkcc='tsh kubectl create configmap'
alias tkcn='tsh kubectl create namespace'
alias tkcd='tsh kubectl create deployment'

# Delete/Remove Aliases
alias tkrp='tsh kubectl delete'
alias tkrc='tsh kubectl delete configmap'
alias tkri='tsh kubectl delete ingress'
alias tkrn='tsh kubectl delete namespace'
alias tkrd='tsh kubectl delete deployment'
alias tkrs='tsh kubectl delete service'
alias tkrap='tsh kubectl delete all --all -n'

# Edit and Apply Aliases
alias tkec='tsh kubectl edit configmap'
alias tkaf='tsh kubectl apply -f'
alias tkrf='tsh kubectl delete -f'
alias tked='tsh kubectl edit deployment'

# Logging and Monitoring
alias tkgl='tsh kubectl logs -f'
alias tkwp='tsh kubectl logs -f'
alias twkga='watch tsh kubectl get all'
alias twkgp='watch tsh kubectl get pods'
alias tktn='tsh kubectl top nodes'
alias tktp='tsh kubectl top pods'
alias tktpm='tsh kubectl top pods --sort-by=memory'
alias tktpc='tsh kubectl top pods --sort-by=cpu'

# Namespace and Context Management
alias tksn='tsh kubectl config set-context --current --namespace'
alias tksxh='tsh kube login hogwarts'
alias tksxg='tsh kube login gondor'
alias tksx='tsh kubectl config use-context'
alias tkgx='tsh kubectl config get-contexts'
alias tkcx='tsh kubectl config use-context'

# Scaling and Pause
alias tkp='tsh kubectl scale deployment --replicas=0'
alias tkr='tsh kubectl scale deployment --replicas=1'
alias tkts='talosctl shutdown -n'
alias tktr='talosctl reboot -n'
alias ts='talosctl shutdown -n 0.0.0.0,0.0.0.1' # Replace 0.0.0.0 with a comma separated list of IPs of the Talos nodes

# Advanced Helpers
alias tkdp='tsh kubectl describe pods'
alias tdash='talosctl --nodes 0.0.0.0 --endpoints 0.0.0.1 dashboard' # Replace 0.0.0.0 with your controlplane node ip, replace 0.0.0.1 with your endpoint for the dashboard can be the same as the controlplane
alias tkdd='tsh kubectl describe deployments'
alias tkdn='tsh kubectl describe nodes'

# --- Kubernetes Helper Aliases (Fish Function) ---

function kh
    clear
    # Guidance for Customization
    printf "\033[0;31mYou can modify these aliases in ~/.config/fish/config.fish\033[0m\n\n"

    # Basic Aliases
    printf "\033[0;32mBasic Aliases\033[0m\n"
    printf "\033[0;34mk\033[0m - Short for 'kubectl'\n"
    printf "\033[0;34mkh\033[0m - Display this help and list all aliases\n\n"

    # Resource Management
    printf "\033[0;32mResource Management\033[0m\n"
    printf "\033[0;34mkgp\033[0m - Get pods in current namespace\n"
    printf "\033[0;34mkgpw\033[0m - Get pods with wide details, sorted by node\n"
    printf "\033[0;34mkga\033[0m - Get all resources in current namespace\n"
    printf "\033[0;34mkgn\033[0m - Get namespaces\n"
    printf "\033[0;34mkgi\033[0m - Get ingress in current namespace\n"
    printf "\033[0;34mkgc\033[0m - Get configmaps in current namespace\n"
    printf "\033[0;34mkgd\033[0m - Get deployments\n"
    printf "\033[0;34mkgss\033[0m - Get statefulsets\n\n"

    # Creating Resources
    printf "\033[0;32mCreating Resources\033[0m\n"
    printf "\033[0;34mkcc\033[0m - Create a configmap\n"
    printf "\033[0;34mkcn\033[0m - Create a namespace\n"
    printf "\033[0;34mkcd\033[0m - Create a deployment\n\n"

    # Deleting/Removing
    printf "\033[0;32mDeleting/Removing\033[0m\n"
    printf "\033[0;34mkrp\033[0m - Remove a pod\n"
    printf "\033[0;34mkrc\033[0m - Remove a configmap\n"
    printf "\033[0;34mkrd\033[0m - Remove a deployment\n"
    printf "\033[0;34mkrs\033[0m - Remove a service\n"
    printf "\033[0;34mkrn\033[0m - Remove a namespace\n"
    printf "\033[0;34mkrp\033[0m - Remove a pod\n\n"

    # Editing and Applying
    printf "\033[0;32mEditing and Applying\033[0m\n"
    printf "\033[0;34mkec\033[0m - Edit a configmap\n"
    printf "\033[0;34mraft\033[0m - Apply file to current namespace\n"
    printf "\033[0;34mkaf\033[0m - Edit a deployment\n\n"

    # Logging and Monitoring
    printf "\033[0;32mLogging and Monitoring\033[0m\n"
    printf "\033[0;34mkgl\033[0m - Get logs\n"
    printf "\033[0;34mkwp\033[0m - Watch logs of a pod\n"
    printf "\033[0;34mktn\033[0m - Get node usage stats\n"
    printf "\033[0;34mktp\033[0m - Get pod usage stats\n"
    printf "\033[0;34mktpc\033[0m - Pod stats sorted by CPU\n\n"

    # Namespace and Context
    printf "\033[0;32mNamespace and Context\033[0m\n"
    printf "\033[0;34mksn\033[0m - Set current namespace\n"
    printf "\033[0;34mksx\033[0m - Set current context\n"
    printf "\033[0;34mksxh\033[0m - Switch context to Hogwarts\n"
    printf "\033[0;34mksxg\033[0m - Switch context to Gondor\n"
    printf "\033[0;34mkgx\033[0m - Get contexts (namespaces)\n\n"

    # Scaling and Pause
    printf "\033[0;32mScaling and Pause\033[0m\n"
    printf "\033[0;34mkp\033[0m - Pause a pod/deployment (scale to 0)\n"
    printf "\033[0;34mkr\033[0m - Resume a deployment (scale to 1)\n\n"

    # Advanced Helpers
    printf "\033[0;32mAdvanced Helpers\033[0m\n"
    printf "\033[0;34mkdp\033[0m - Describe pods\n"
    printf "\033[0;34mkdd\033[0m - Describe deployments\n"
    printf "\033[0;34mkdn\033[0m - Describe nodes\n\n"

    # Additional Commands
    printf "\033[0;31mAdditional Commands\033[0m\n"
    printf "\033[0;34mrandom\033[0m - Create a random string\n"
    printf "\033[0;34mdash\033[0m - Show Talos Dashboard\n"
    printf "kubectl create secret generic my-secret --from-literal=username=admin\n"
    printf "random 32\n"
    printf "helm show values openebs/openebs > values-openebs.yaml\n"
    printf "Add 't' to the beginning of any alias to use teleport\n"
    printf "\033[0;34tr\033[0m - Reboot all Nodes"
    printf "\033[0;34ts\033[0m - Shutdown all Nodes"
end
On this page
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9