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