Blame
| 3e0f3b | Tebby Dog | 2025-07-06 21:08:52 | 1 | # Fish-Aliases |
| 2 | ||||
| 3 | This is a list of aliases I use to reduce typing when managing my Kubernetes cluster, these are for the fish console |
|||
| 4 | ||||
| 5 | ```bash |
|||
| 6 | ||||
| 7 | # --- Color Definitions --- |
|||
| 8 | set -x BLU '\033[0;34m' |
|||
| 9 | set -x RED '\033[0;31m' |
|||
| 10 | set -x GRN '\033[0;32m' |
|||
| 11 | set -x NC '\033[0m' |
|||
| 12 | ||||
| 13 | # --- Kubectl Aliases --- |
|||
| 14 | alias k='kubectl' |
|||
| 15 | ||||
| 16 | # Resource Management Aliases |
|||
| 17 | alias kgp='kubectl get pods' |
|||
| 18 | alias kgpw='kubectl get pods -o wide --sort-by=".spec.nodeName"' |
|||
| 19 | alias kga='kubectl get all' |
|||
| 20 | alias kgn='kubectl get namespaces' |
|||
| 21 | alias kgi='kubectl get ingress' |
|||
| 22 | alias kgc='kubectl get configmaps' |
|||
| 23 | alias kgs='kubectl get services' |
|||
| 24 | alias kgss='kubectl get statefulsets' |
|||
| 25 | ||||
| 26 | # Create Aliases |
|||
| 27 | alias kcc='kubectl create configmap' |
|||
| 28 | alias kcn='kubectl create namespace' |
|||
| 29 | alias kcd='kubectl create deployment' |
|||
| 30 | ||||
| 31 | # Delete/Remove Aliases |
|||
| 32 | alias krp='kubectl delete' |
|||
| 33 | alias krc='kubectl delete configmap' |
|||
| 34 | alias kri='kubectl delete ingress' |
|||
| 35 | alias krn='kubectl delete namespace' |
|||
| 36 | alias krd='kubectl delete deployment' |
|||
| 37 | alias krs='kubectl delete service' |
|||
| 38 | alias krap='kubectl delete all --all -n' |
|||
| 39 | ||||
| 40 | # Edit and Apply Aliases |
|||
| 41 | alias kec='kubectl edit configmap' |
|||
| 42 | alias kaf='kubectl apply -f' |
|||
| 43 | alias krf='kubectl delete -f' |
|||
| 44 | alias ked='kubectl edit deployment' |
|||
| 45 | ||||
| 46 | # Logging and Monitoring |
|||
| 47 | alias kgl='kubectl logs -f' |
|||
| 48 | alias kwp='kubectl logs -f' |
|||
| 49 | alias wkga='watch kubectl get all' |
|||
| 50 | alias wkgp='watch kubectl get pods' |
|||
| 51 | alias ktn='kubectl top nodes' |
|||
| 52 | alias ktp='kubectl top pods' |
|||
| 53 | alias ktpm='kubectl top pods --sort-by=memory' |
|||
| 54 | alias ktpc='kubectl top pods --sort-by=cpu' |
|||
| 55 | ||||
| 56 | # Namespace and Context Management |
|||
| 57 | alias ksn='kubectl config set-context --current --namespace' |
|||
| 58 | alias ksxh='set KUBECONFIG ~/.kube/config-hogwarts' |
|||
| 59 | alias ksxg='set KUBECONFIG ~/.kube/config-gondor' |
|||
| 60 | alias ksx='kubectl config use-context' |
|||
| 61 | alias kgx='kubectl config get-contexts' |
|||
| 62 | alias kcx='kubectl config use-context' |
|||
| 63 | ||||
| 64 | # Scaling and Pause |
|||
| 65 | alias kp='kubectl scale deployment --replicas=0' |
|||
| 66 | alias kr='kubectl scale deployment --replicas=1' |
|||
| 67 | alias kts='talosctl shutdown -n' |
|||
| 68 | alias ktr='talosctl reboot -n' |
|||
| 69 | ||||
| 70 | # Advanced Helpers |
|||
| 71 | alias kdp='kubectl describe pods' |
|||
| 72 | 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 |
|||
| 73 | alias kdd='kubectl describe deployments' |
|||
| 74 | alias kdn='kubectl describe nodes' |
|||
| 75 | alias random='openssl rand -hex' |
|||
| 76 | ||||
| 77 | function kgd # this will only work with pbcopy installed |
|||
| 78 | # Get current namespace |
|||
| 79 | set namespace (kubectl config view --minify --output 'jsonpath={..namespace}') |
|||
| 80 | ||||
| 81 | # Get all services in the current namespace |
|||
| 82 | set services (kubectl get services -o name | sed 's/service\///') |
|||
| 83 | ||||
| 84 | # Check if any services exist |
|||
| 85 | if test (count $services) -eq 0 |
|||
| 86 | echo "No services found in namespace: $namespace" |
|||
| 87 | return 1 |
|||
| 88 | end |
|||
| 89 | ||||
| 90 | # If there's only one service, automatically select it |
|||
| 91 | if test (count $services) -eq 1 |
|||
| 92 | set selected_service $services[1] |
|||
| 93 | set selection 1 |
|||
| 94 | else |
|||
| 95 | # Display services with numbers |
|||
| 96 | echo "Select a service from namespace '$namespace':" |
|||
| 97 | for i in (seq (count $services)) |
|||
| 98 | echo "$i. $services[$i]" |
|||
| 99 | end |
|||
| 100 | ||||
| 101 | # Get user selection |
|||
| 102 | read -P "Enter selection number: " selection |
|||
| 103 | end |
|||
| 104 | ||||
| 105 | # Validate selection |
|||
| 106 | if test "$selection" -ge 1 -a "$selection" -le (count $services) |
|||
| 107 | set selected_service $services[$selection] |
|||
| 108 | ||||
| 109 | # Get the port for the selected service |
|||
| 110 | set port_data (kubectl get service $selected_service -o jsonpath='{.spec.ports[0].port}') |
|||
| 111 | ||||
| 112 | # Create the URL with port |
|||
| 113 | set url "$selected_service.$namespace.svc.cluster.local:$port_data" |
|||
| 114 | ||||
| 115 | # Output the result |
|||
| 116 | echo $url |
|||
| 117 | ||||
| 118 | # Copy to clipboard if pbcopy/xclip is available |
|||
| 119 | if type -q pbcopy |
|||
| 120 | echo $url | pbcopy |
|||
| 121 | echo "URL copied to clipboard!" |
|||
| 122 | else if type -q xclip |
|||
| 123 | echo $url | xclip -selection clipboard |
|||
| 124 | echo "URL copied to clipboard!" |
|||
| 125 | end |
|||
| 126 | else |
|||
| 127 | echo "Invalid selection!" |
|||
| 128 | return 1 |
|||
| 129 | end |
|||
| 130 | end |
|||
| 131 | ||||
| 132 | function tkgd |
|||
| 133 | # Get current namespace |
|||
| 134 | set namespace (tsh kubectl config view --minify --output 'jsonpath={..namespace}') |
|||
| 135 | ||||
| 136 | # Get all services in the current namespace |
|||
| 137 | set services (tsh kubectl get services -o name | sed 's/service\///') |
|||
| 138 | ||||
| 139 | # Check if any services exist |
|||
| 140 | if test (count $services) -eq 0 |
|||
| 141 | echo "No services found in namespace: $namespace" |
|||
| 142 | return 1 |
|||
| 143 | end |
|||
| 144 | ||||
| 145 | # Display services with numbers |
|||
| 146 | echo "Select a service from namespace '$namespace':" |
|||
| 147 | for i in (seq (count $services)) |
|||
| 148 | echo "$i. $services[$i]" |
|||
| 149 | end |
|||
| 150 | ||||
| 151 | # Get user selection |
|||
| 152 | read -P "Enter selection number: " selection |
|||
| 153 | ||||
| 154 | # Validate selection |
|||
| 155 | if test "$selection" -ge 1 -a "$selection" -le (count $services) |
|||
| 156 | set selected_service $services[$selection] |
|||
| 157 | ||||
| 158 | # Create the URL |
|||
| 159 | set url "$selected_service.$namespace.svc.cluster.local" |
|||
| 160 | ||||
| 161 | # Output the result |
|||
| 162 | echo $url |
|||
| 163 | ||||
| 164 | # Copy to clipboard if pbcopy/xclip is available |
|||
| 165 | if type -q pbcopy |
|||
| 166 | echo $url | pbcopy |
|||
| 167 | echo "URL copied to clipboard!" |
|||
| 168 | else if type -q xclip |
|||
| 169 | echo $url | xclip -selection clipboard |
|||
| 170 | echo "URL copied to clipboard!" |
|||
| 171 | end |
|||
| 172 | else |
|||
| 173 | echo "Invalid selection!" |
|||
| 174 | return 1 |
|||
| 175 | end |
|||
| 176 | end |
|||
| 177 | ||||
| 178 | ## These are duplicates of the above but using teleport to connect to the cluster |
|||
| 179 | ||||
| 180 | # --- Kubectl Aliases --- |
|||
| 181 | alias tk='tsh kubectl' |
|||
| 182 | ||||
| 183 | # Resource Management Aliases |
|||
| 184 | alias tkgp='tsh kubectl get pods' |
|||
| 185 | alias tkgpw='tsh kubectl get pods -o wide --sort-by=".spec.nodeName"' |
|||
| 186 | alias tkga='tsh kubectl get all' |
|||
| 187 | alias tkgn='tsh kubectl get namespaces' |
|||
| 188 | alias tkgi='tsh kubectl get ingress' |
|||
| 189 | alias tkgc='tsh kubectl get configmaps' |
|||
| 190 | alias tkgs='tsh kubectl get services' |
|||
| 191 | alias tkgss='tsh kubectl get statefulsets' |
|||
| 192 | ||||
| 193 | # Create Aliases |
|||
| 194 | alias tkcc='tsh kubectl create configmap' |
|||
| 195 | alias tkcn='tsh kubectl create namespace' |
|||
| 196 | alias tkcd='tsh kubectl create deployment' |
|||
| 197 | ||||
| 198 | # Delete/Remove Aliases |
|||
| 199 | alias tkrp='tsh kubectl delete' |
|||
| 200 | alias tkrc='tsh kubectl delete configmap' |
|||
| 201 | alias tkri='tsh kubectl delete ingress' |
|||
| 202 | alias tkrn='tsh kubectl delete namespace' |
|||
| 203 | alias tkrd='tsh kubectl delete deployment' |
|||
| 204 | alias tkrs='tsh kubectl delete service' |
|||
| 205 | alias tkrap='tsh kubectl delete all --all -n' |
|||
| 206 | ||||
| 207 | # Edit and Apply Aliases |
|||
| 208 | alias tkec='tsh kubectl edit configmap' |
|||
| 209 | alias tkaf='tsh kubectl apply -f' |
|||
| 210 | alias tkrf='tsh kubectl delete -f' |
|||
| 211 | alias tked='tsh kubectl edit deployment' |
|||
| 212 | ||||
| 213 | # Logging and Monitoring |
|||
| 214 | alias tkgl='tsh kubectl logs -f' |
|||
| 215 | alias tkwp='tsh kubectl logs -f' |
|||
| 216 | alias twkga='watch tsh kubectl get all' |
|||
| 217 | alias twkgp='watch tsh kubectl get pods' |
|||
| 218 | alias tktn='tsh kubectl top nodes' |
|||
| 219 | alias tktp='tsh kubectl top pods' |
|||
| 220 | alias tktpm='tsh kubectl top pods --sort-by=memory' |
|||
| 221 | alias tktpc='tsh kubectl top pods --sort-by=cpu' |
|||
| 222 | ||||
| 223 | # Namespace and Context Management |
|||
| 224 | alias tksn='tsh kubectl config set-context --current --namespace' |
|||
| 225 | alias tksxh='tsh kube login hogwarts' |
|||
| 226 | alias tksxg='tsh kube login gondor' |
|||
| 227 | alias tksx='tsh kubectl config use-context' |
|||
| 228 | alias tkgx='tsh kubectl config get-contexts' |
|||
| 229 | alias tkcx='tsh kubectl config use-context' |
|||
| 230 | ||||
| 231 | # Scaling and Pause |
|||
| 232 | alias tkp='tsh kubectl scale deployment --replicas=0' |
|||
| 233 | alias tkr='tsh kubectl scale deployment --replicas=1' |
|||
| 234 | alias tkts='talosctl shutdown -n' |
|||
| 235 | alias tktr='talosctl reboot -n' |
|||
| 236 | 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 |
|||
| 237 | ||||
| 238 | # Advanced Helpers |
|||
| 239 | alias tkdp='tsh kubectl describe pods' |
|||
| 240 | 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 |
|||
| 241 | alias tkdd='tsh kubectl describe deployments' |
|||
| 242 | alias tkdn='tsh kubectl describe nodes' |
|||
| 243 | ||||
| 244 | # --- Kubernetes Helper Aliases (Fish Function) --- |
|||
| 245 | ||||
| 246 | function kh |
|||
| 247 | clear |
|||
| 248 | # Guidance for Customization |
|||
| 249 | printf "\033[0;31mYou can modify these aliases in ~/.config/fish/config.fish\033[0m\n\n" |
|||
| 250 | ||||
| 251 | # Basic Aliases |
|||
| 252 | printf "\033[0;32mBasic Aliases\033[0m\n" |
|||
| 253 | printf "\033[0;34mk\033[0m - Short for 'kubectl'\n" |
|||
| 254 | printf "\033[0;34mkh\033[0m - Display this help and list all aliases\n\n" |
|||
| 255 | ||||
| 256 | # Resource Management |
|||
| 257 | printf "\033[0;32mResource Management\033[0m\n" |
|||
| 258 | printf "\033[0;34mkgp\033[0m - Get pods in current namespace\n" |
|||
| 259 | printf "\033[0;34mkgpw\033[0m - Get pods with wide details, sorted by node\n" |
|||
| 260 | printf "\033[0;34mkga\033[0m - Get all resources in current namespace\n" |
|||
| 261 | printf "\033[0;34mkgn\033[0m - Get namespaces\n" |
|||
| 262 | printf "\033[0;34mkgi\033[0m - Get ingress in current namespace\n" |
|||
| 263 | printf "\033[0;34mkgc\033[0m - Get configmaps in current namespace\n" |
|||
| 264 | printf "\033[0;34mkgd\033[0m - Get deployments\n" |
|||
| 265 | printf "\033[0;34mkgss\033[0m - Get statefulsets\n\n" |
|||
| 266 | ||||
| 267 | # Creating Resources |
|||
| 268 | printf "\033[0;32mCreating Resources\033[0m\n" |
|||
| 269 | printf "\033[0;34mkcc\033[0m - Create a configmap\n" |
|||
| 270 | printf "\033[0;34mkcn\033[0m - Create a namespace\n" |
|||
| 271 | printf "\033[0;34mkcd\033[0m - Create a deployment\n\n" |
|||
| 272 | ||||
| 273 | # Deleting/Removing |
|||
| 274 | printf "\033[0;32mDeleting/Removing\033[0m\n" |
|||
| 275 | printf "\033[0;34mkrp\033[0m - Remove a pod\n" |
|||
| 276 | printf "\033[0;34mkrc\033[0m - Remove a configmap\n" |
|||
| 277 | printf "\033[0;34mkrd\033[0m - Remove a deployment\n" |
|||
| 278 | printf "\033[0;34mkrs\033[0m - Remove a service\n" |
|||
| 279 | printf "\033[0;34mkrn\033[0m - Remove a namespace\n" |
|||
| 280 | printf "\033[0;34mkrp\033[0m - Remove a pod\n\n" |
|||
| 281 | ||||
| 282 | # Editing and Applying |
|||
| 283 | printf "\033[0;32mEditing and Applying\033[0m\n" |
|||
| 284 | printf "\033[0;34mkec\033[0m - Edit a configmap\n" |
|||
| 285 | printf "\033[0;34mraft\033[0m - Apply file to current namespace\n" |
|||
| 286 | printf "\033[0;34mkaf\033[0m - Edit a deployment\n\n" |
|||
| 287 | ||||
| 288 | # Logging and Monitoring |
|||
| 289 | printf "\033[0;32mLogging and Monitoring\033[0m\n" |
|||
| 290 | printf "\033[0;34mkgl\033[0m - Get logs\n" |
|||
| 291 | printf "\033[0;34mkwp\033[0m - Watch logs of a pod\n" |
|||
| 292 | printf "\033[0;34mktn\033[0m - Get node usage stats\n" |
|||
| 293 | printf "\033[0;34mktp\033[0m - Get pod usage stats\n" |
|||
| 294 | printf "\033[0;34mktpc\033[0m - Pod stats sorted by CPU\n\n" |
|||
| 295 | ||||
| 296 | # Namespace and Context |
|||
| 297 | printf "\033[0;32mNamespace and Context\033[0m\n" |
|||
| 298 | printf "\033[0;34mksn\033[0m - Set current namespace\n" |
|||
| 299 | printf "\033[0;34mksx\033[0m - Set current context\n" |
|||
| 300 | printf "\033[0;34mksxh\033[0m - Switch context to Hogwarts\n" |
|||
| 301 | printf "\033[0;34mksxg\033[0m - Switch context to Gondor\n" |
|||
| 302 | printf "\033[0;34mkgx\033[0m - Get contexts (namespaces)\n\n" |
|||
| 303 | ||||
| 304 | # Scaling and Pause |
|||
| 305 | printf "\033[0;32mScaling and Pause\033[0m\n" |
|||
| 306 | printf "\033[0;34mkp\033[0m - Pause a pod/deployment (scale to 0)\n" |
|||
| 307 | printf "\033[0;34mkr\033[0m - Resume a deployment (scale to 1)\n\n" |
|||
| 308 | ||||
| 309 | # Advanced Helpers |
|||
| 310 | printf "\033[0;32mAdvanced Helpers\033[0m\n" |
|||
| 311 | printf "\033[0;34mkdp\033[0m - Describe pods\n" |
|||
| 312 | printf "\033[0;34mkdd\033[0m - Describe deployments\n" |
|||
| 313 | printf "\033[0;34mkdn\033[0m - Describe nodes\n\n" |
|||
| 314 | ||||
| 315 | # Additional Commands |
|||
| 316 | printf "\033[0;31mAdditional Commands\033[0m\n" |
|||
| 317 | printf "\033[0;34mrandom\033[0m - Create a random string\n" |
|||
| 318 | printf "\033[0;34mdash\033[0m - Show Talos Dashboard\n" |
|||
| 319 | printf "kubectl create secret generic my-secret --from-literal=username=admin\n" |
|||
| 320 | printf "random 32\n" |
|||
| 321 | printf "helm show values openebs/openebs > values-openebs.yaml\n" |
|||
| 322 | printf "Add 't' to the beginning of any alias to use teleport\n" |
|||
| 323 | printf "\033[0;34tr\033[0m - Reboot all Nodes" |
|||
| 324 | printf "\033[0;34ts\033[0m - Shutdown all Nodes" |
|||
| 325 | end |
|||
| 326 | ||||
| 327 | ``` |