split out k8s related functions.sh
This commit is contained in:
parent
a91b7dde6e
commit
2f2c95568f
@ -231,36 +231,6 @@ function gitcopy() {
|
|||||||
echo $commits | pbcopy
|
echo $commits | pbcopy
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
function kubectl() {
|
|
||||||
echo $RUNNING_POD
|
|
||||||
echo $NAMESPACE
|
|
||||||
echo $KCONTEXT
|
|
||||||
DEBUG=false
|
|
||||||
finalopts=()
|
|
||||||
while [[ $@ != "" ]] do
|
|
||||||
case $1 in
|
|
||||||
--context=*)
|
|
||||||
KCONTEXT="${i#*=}"
|
|
||||||
shift
|
|
||||||
;;
|
|
||||||
--debug)
|
|
||||||
DEBUG=true
|
|
||||||
shift
|
|
||||||
;;
|
|
||||||
--)
|
|
||||||
finalopts+=("$@")
|
|
||||||
break
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
finalopts+=($1)
|
|
||||||
shift
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
[[ $DEBUG == "true" ]] && echo "kubectl --kubeconfig=$HOME/.kube/${KCONTEXT}_config $finalopts"
|
|
||||||
echo "kubectl --kubeconfig=$HOME/.kube/${KCONTEXT}_config $finalopts"
|
|
||||||
command kubectl --kubeconfig=$HOME/.kube/${KCONTEXT}_config $finalopts
|
|
||||||
}
|
|
||||||
function stern {
|
function stern {
|
||||||
finalopts=()
|
finalopts=()
|
||||||
while [[ $@ != "" ]] do
|
while [[ $@ != "" ]] do
|
||||||
@ -301,127 +271,6 @@ function helm() {
|
|||||||
[[ $DEBUG == "true" ]] && echo "helm $finalopts --kubeconfig=$HOME/.kube/${KCONTEXT}_config"
|
[[ $DEBUG == "true" ]] && echo "helm $finalopts --kubeconfig=$HOME/.kube/${KCONTEXT}_config"
|
||||||
command helm $finalopts --kubeconfig=$HOME/.kube/${KCONTEXT}_config
|
command helm $finalopts --kubeconfig=$HOME/.kube/${KCONTEXT}_config
|
||||||
}
|
}
|
||||||
NAMESPACE=default
|
|
||||||
RUNNING_POD=""
|
|
||||||
LEFT_ARGS=""
|
|
||||||
KCONTEXT=""
|
|
||||||
function getpod {
|
|
||||||
RAN=true
|
|
||||||
function usage ()
|
|
||||||
{
|
|
||||||
echo "Usage : $0 [options] [--]
|
|
||||||
Options:
|
|
||||||
-K kubectl context
|
|
||||||
-R not randomly select pod
|
|
||||||
-n NAMESPACE
|
|
||||||
-p PROJECT
|
|
||||||
-h Display this message"
|
|
||||||
}
|
|
||||||
while getopts ":hvK:Rp:" opt
|
|
||||||
do
|
|
||||||
case $opt in
|
|
||||||
R) RAN=false ;;
|
|
||||||
h) usage; return 0 ;;
|
|
||||||
n) NAMESPACE=$OPTARG ;;
|
|
||||||
p) PROJECT=$OPTARG ;;
|
|
||||||
K) KCONTEXT=$OPTARG ;;
|
|
||||||
*) echo -e "\n Option does not exist: $OPTARG\n"
|
|
||||||
usage; return 1 ;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
shift $(($OPTIND-1))
|
|
||||||
|
|
||||||
RUNNING_POD_INDEX=-1
|
|
||||||
while true; do
|
|
||||||
echo "kubectl -n $NAMESPACE get pods | grep $PROJECT"
|
|
||||||
ALL_PODS=$(kubectl -n $NAMESPACE get pods | grep "$PROJECT")
|
|
||||||
echo $fg[green]"All Pods:"$reset_color
|
|
||||||
echo $ALL_PODS
|
|
||||||
if [[ ${#ALL_PODS[@]} == 0 ]]; then
|
|
||||||
echo $fg[red]"Pod not found for $PROJECT"$reset_color
|
|
||||||
break
|
|
||||||
fi
|
|
||||||
RUNNING_PODS=($(echo $ALL_PODS | egrep "$PROJECT.* ?[1-9]/[0-9]? *Running" | awk '{print $1}'))
|
|
||||||
if [[ `echo $ALL_PODS | wc -l` != ${#RUNNING_PODS[@]} ]]; then
|
|
||||||
sleep 2
|
|
||||||
echo $fg[red]'Pods are not ready, wait...'$reset_color
|
|
||||||
continue
|
|
||||||
fi
|
|
||||||
if [[ ${#RUNNING_PODS[@]} == 0 ]]; then
|
|
||||||
echo "Pod not found for $PROJECT"
|
|
||||||
break
|
|
||||||
fi
|
|
||||||
if [[ $RAN == 'true' ]];then
|
|
||||||
RUNNING_POD_INDEX=`shuf -i 1-${#RUNNING_PODS[@]} -n 1`
|
|
||||||
break
|
|
||||||
fi
|
|
||||||
if [ ${#RUNNING_PODS[@]} -eq 1 ];then
|
|
||||||
RUNNING_POD_INDEX=1
|
|
||||||
break
|
|
||||||
elif [ ${#RUNNING_PODS[@]} -gt 1 ];then
|
|
||||||
echo $fg[green]'Running Pods:'$reset_color
|
|
||||||
INDEX=1
|
|
||||||
for i in $RUNNING_PODS;do
|
|
||||||
echo "[$INDEX] $i"
|
|
||||||
let INDEX=${INDEX}+1
|
|
||||||
done
|
|
||||||
echo $fg[green]'Select option of pod to execute:'$reset_color
|
|
||||||
while true;do
|
|
||||||
read RUNNING_POD_INDEX
|
|
||||||
if [[ $RUNNING_POD_INDEX -gt 0 && $RUNNING_POD_INDEX -le ${#RUNNING_PODS[@]} ]];then
|
|
||||||
break
|
|
||||||
else
|
|
||||||
echo 'invalid option...'
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
break
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
RUNNING_POD=$RUNNING_PODS[$RUNNING_POD_INDEX]
|
|
||||||
LEFT_ARGS=$@
|
|
||||||
}
|
|
||||||
|
|
||||||
function kexec {
|
|
||||||
getpod $@
|
|
||||||
if [[ $RUNNING_POD != "" ]]; then
|
|
||||||
echo "kubectl -it -n $NAMESPACE exec $RUNNING_POD -- /bin/sh -c $LEFT_ARGS"
|
|
||||||
kubectl -it -n $NAMESPACE exec $RUNNING_POD -- /bin/sh -c $LEFT_ARGS
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
function klogs {
|
|
||||||
finalopts=()
|
|
||||||
while [[ $@ != "" ]] do
|
|
||||||
case $1 in
|
|
||||||
--context=*)
|
|
||||||
KCONTEXT="${i#*=}"
|
|
||||||
shift
|
|
||||||
;;
|
|
||||||
-p)
|
|
||||||
PROJECT="$2"
|
|
||||||
shift; shift
|
|
||||||
;;
|
|
||||||
-i)
|
|
||||||
INSTANCE="$2"
|
|
||||||
shift; shift
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
finalopts+=($1)
|
|
||||||
shift
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
|
|
||||||
if [[ "$PROJECT" != "" ]]; then
|
|
||||||
kubectl logs -f deployment/$PROJECT --all-containers=true --since=5s --pod-running-timeout=2s $finalopts
|
|
||||||
elif [[ "$INSTANCE" != "" ]]; then
|
|
||||||
while true; do
|
|
||||||
kubectl logs -f --max-log-requests=10 -l app.kubernetes.io/instance=$INSTANCE 1>&0
|
|
||||||
echo "Waiting..."
|
|
||||||
sleep 2
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
function rgm {
|
function rgm {
|
||||||
args=("${(@s/,/)1}")
|
args=("${(@s/,/)1}")
|
||||||
@ -484,9 +333,3 @@ function gc {
|
|||||||
function gcm {
|
function gcm {
|
||||||
(gc --message $*) || return
|
(gc --message $*) || return
|
||||||
}
|
}
|
||||||
function k_delete_evicted {
|
|
||||||
k delete pod `k get pods | grep Evicted | awk '{print $1}'`
|
|
||||||
}
|
|
||||||
function k_get_instance {
|
|
||||||
k get pods -o jsonpath="{.items[*].metadata.labels['app\.kubernetes\.io\/instance']}" | tr " " "\n" | uniq
|
|
||||||
}
|
|
||||||
|
154
zsh/k8s.zsh
Normal file
154
zsh/k8s.zsh
Normal file
@ -0,0 +1,154 @@
|
|||||||
|
NAMESPACE=default
|
||||||
|
RUNNING_POD=""
|
||||||
|
LEFT_ARGS=""
|
||||||
|
KCONTEXT=""
|
||||||
|
function getpod {
|
||||||
|
RAN=true
|
||||||
|
function usage ()
|
||||||
|
{
|
||||||
|
echo "Usage : $0 [options] [--]
|
||||||
|
Options:
|
||||||
|
-K kubectl context
|
||||||
|
-R not randomly select pod
|
||||||
|
-n NAMESPACE
|
||||||
|
-p PROJECT
|
||||||
|
-h Display this message"
|
||||||
|
}
|
||||||
|
while getopts ":hvK:Rp:" opt
|
||||||
|
do
|
||||||
|
case $opt in
|
||||||
|
R) RAN=false ;;
|
||||||
|
h) usage; return 0 ;;
|
||||||
|
n) NAMESPACE=$OPTARG ;;
|
||||||
|
p) PROJECT=$OPTARG ;;
|
||||||
|
K) KCONTEXT=$OPTARG ;;
|
||||||
|
*) echo -e "\n Option does not exist: $OPTARG\n"
|
||||||
|
usage; return 1 ;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
shift $(($OPTIND-1))
|
||||||
|
|
||||||
|
RUNNING_POD_INDEX=-1
|
||||||
|
while true; do
|
||||||
|
echo "kubectl -n $NAMESPACE get pods | grep $PROJECT"
|
||||||
|
ALL_PODS=$(kubectl -n $NAMESPACE get pods | grep "$PROJECT")
|
||||||
|
echo $fg[green]"All Pods:"$reset_color
|
||||||
|
echo $ALL_PODS
|
||||||
|
if [[ ${#ALL_PODS[@]} == 0 ]]; then
|
||||||
|
echo $fg[red]"Pod not found for $PROJECT"$reset_color
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
RUNNING_PODS=($(echo $ALL_PODS | egrep "$PROJECT.* ?[1-9]/[0-9]? *Running" | awk '{print $1}'))
|
||||||
|
if [[ `echo $ALL_PODS | wc -l` != ${#RUNNING_PODS[@]} ]]; then
|
||||||
|
sleep 2
|
||||||
|
echo $fg[red]'Pods are not ready, wait...'$reset_color
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
if [[ ${#RUNNING_PODS[@]} == 0 ]]; then
|
||||||
|
echo "Pod not found for $PROJECT"
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
if [[ $RAN == 'true' ]];then
|
||||||
|
RUNNING_POD_INDEX=`shuf -i 1-${#RUNNING_PODS[@]} -n 1`
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
if [ ${#RUNNING_PODS[@]} -eq 1 ];then
|
||||||
|
RUNNING_POD_INDEX=1
|
||||||
|
break
|
||||||
|
elif [ ${#RUNNING_PODS[@]} -gt 1 ];then
|
||||||
|
echo $fg[green]'Running Pods:'$reset_color
|
||||||
|
INDEX=1
|
||||||
|
for i in $RUNNING_PODS;do
|
||||||
|
echo "[$INDEX] $i"
|
||||||
|
let INDEX=${INDEX}+1
|
||||||
|
done
|
||||||
|
echo $fg[green]'Select option of pod to execute:'$reset_color
|
||||||
|
while true;do
|
||||||
|
read RUNNING_POD_INDEX
|
||||||
|
if [[ $RUNNING_POD_INDEX -gt 0 && $RUNNING_POD_INDEX -le ${#RUNNING_PODS[@]} ]];then
|
||||||
|
break
|
||||||
|
else
|
||||||
|
echo 'invalid option...'
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
RUNNING_POD=$RUNNING_PODS[$RUNNING_POD_INDEX]
|
||||||
|
LEFT_ARGS=$@
|
||||||
|
}
|
||||||
|
|
||||||
|
function kexec {
|
||||||
|
getpod $@
|
||||||
|
if [[ $RUNNING_POD != "" ]]; then
|
||||||
|
echo "kubectl -it -n $NAMESPACE exec $RUNNING_POD -- /bin/sh -c $LEFT_ARGS"
|
||||||
|
kubectl -it -n $NAMESPACE exec $RUNNING_POD -- /bin/sh -c $LEFT_ARGS
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function klogs {
|
||||||
|
finalopts=()
|
||||||
|
while [[ $@ != "" ]] do
|
||||||
|
case $1 in
|
||||||
|
--context=*)
|
||||||
|
KCONTEXT="${i#*=}"
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
-p)
|
||||||
|
PROJECT="$2"
|
||||||
|
shift; shift
|
||||||
|
;;
|
||||||
|
-i)
|
||||||
|
INSTANCE="$2"
|
||||||
|
shift; shift
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
finalopts+=($1)
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
if [[ "$PROJECT" != "" ]]; then
|
||||||
|
kubectl logs -f deployment/$PROJECT --all-containers=true --since=5s --pod-running-timeout=2s $finalopts
|
||||||
|
elif [[ "$INSTANCE" != "" ]]; then
|
||||||
|
while true; do
|
||||||
|
kubectl logs -f --max-log-requests=10 -l app.kubernetes.io/instance=$INSTANCE 1>&0
|
||||||
|
echo "Waiting..."
|
||||||
|
sleep 2
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
function k_delete_evicted {
|
||||||
|
k delete pod `k get pods | grep Evicted | awk '{print $1}'`
|
||||||
|
}
|
||||||
|
function k_get_instance {
|
||||||
|
k get pods -o jsonpath="{.items[*].metadata.labels['app\.kubernetes\.io\/instance']}" | tr " " "\n" | uniq
|
||||||
|
}
|
||||||
|
function kubectl() {
|
||||||
|
DEBUG=false
|
||||||
|
finalopts=()
|
||||||
|
while [[ $@ != "" ]] do
|
||||||
|
case $1 in
|
||||||
|
--context=*)
|
||||||
|
KCONTEXT="${i#*=}"
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
--debug)
|
||||||
|
DEBUG=true
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
--)
|
||||||
|
finalopts+=("$@")
|
||||||
|
break
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
finalopts+=($1)
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
[[ $DEBUG == "true" ]] && echo "kubectl --kubeconfig=$HOME/.kube/${KCONTEXT}_config $finalopts"
|
||||||
|
echo "kubectl --kubeconfig=$HOME/.kube/${KCONTEXT}_config $finalopts"
|
||||||
|
command kubectl --kubeconfig=$HOME/.kube/${KCONTEXT}_config $finalopts
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user