if [ -f "$HOME/.bashrc" ]; then . "$HOME/.bashrc" fi cd ~/gitrepos/k8s-configs # https://github.com/ahmetb/kubectx k8s_context= k8s_namespace= find_k8s() { k8s_context="$(kubectx -c)" k8s_namespace="$(kubens -c)" } PROMPT_COMMAND="find_k8s; $PROMPT_COMMAND" if [ "$EUID" -ne 0 ]; then if [ "$color_prompt" = yes ]; then ps1_folder='\e[32m[\w] \e[1;34m$k8s_context/$k8s_namespace' else ps1_folder='[w] $k8s_context/$k8s_namespace' fi fi PS1='$(echo_last_status)\n'$ps1_shelllevel$ps1_user$ps1_folder$ps1_prompt export AWS_PROFILE=k8s export AWS_SDK_LOAD_CONFIG=1 export KOPS_STATE_STORE=your-kops-state-store function kubectl { if [[ "$1" == "token" ]]; then command aws-iam-authenticator token -i your.k8s.cluster -r arn:aws:iam::012345678910:role/OrganizationAccountAccessRole | jq -r .status.token | pbcopy elif [[ "$1" == "dashboard" ]]; then echo "Copying token to clipboard..." qk token echo "Done" echo "When running, visit http://localhost:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/" k proxy elif [[ "$1" == "watch" ]]; then shift 1 if [[ "$1" == "get" ]]; then shift 1 k get --watch "$@" else command watch -n 1 kubectl "$@" fi elif [[ "$1" == "podexec" ]]; then shift 1 firstpod="$(k get pods --output=jsonpath="{.items[0].metadata.name}" | head -1)" echo "Running in $firstpod" k exec -it $firstpod "$@" else command kubectl "$@" fi } alias k=kubectl complete -F _complete_alias k