Commit 3e0f3b
2025-07-06 21:08:52 Tebby Dog: Moved from 1-Guides/dev/null .. 2-code/fish-aliases.md | |
@@ 0,0 1,327 @@ | |
+ | # Fish-Aliases |
+ | |
+ | This is a list of aliases I use to reduce typing when managing my Kubernetes cluster, these are for the fish console |
+ | |
+ | ```bash |
+ | |
+ | # --- 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 |
+ | |
+ | ``` |