K8s-Aliases
This is a list of aliases I use to reduce typing when managing my Kubernetes cluster
# --- 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